专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 问答 技术问答 请问如何写一个死锁

请问如何写一个死锁

往事如风已回答

用Java打造更美好的世界!

思想为:定义两个ArrayList,将他们都加上锁A,B,线程1,2,1拿住了锁A ,请求锁B,2拿住了锁B请求锁A,在等待对方释放锁的过程中谁也不让出已获得的锁。

public class DeadLock {

    public static void main(String[] args) {

        final List<Integer> list1 = Arrays.asList(1, 2, 3);

        final List<Integer> list2 = Arrays.asList(4, 5, 6);

        new Thread(new Runnable() {

            @Override

            public void run() {

                synchronized (list1) {

                    for (Integer i : list1) {

                        System.out.println(i);

                    }

                    try {

                        Thread.sleep(1000);

                    } catch (InterruptedException e) {

                        e.printStackTrace();

                    }

                    synchronized (list2) {

                        for (Integer i : list2) {

                            System.out.println(i);

                        }

                    }

                }

            }

        }).start();

浏览955技术问答
2021-03-25 17:05:20

聚焦热点问题
时时免费答疑

累计0人询问

极速问
  >>其他人还看过
更多问答

Java实验班

0学费 专业学前测评

Java就业班

围绕企业 直达就业

Java夜校班

业余时间学 超高性价比

Java架构师班

升职加薪 快速变现

返回顶部