小编Ven*_*ata的帖子

为什么在这个程序中同一个对象没有死锁 - Java多线程

我下面有三节课.Main,两个线程和Obj,其方法是同步的

public class DeadLocks {

    public static void main(String[] args) {
        SyncObj so = new SyncObj();
        ThreadObj to = new ThreadObj(so);
        ThreadObj1 to1 = new ThreadObj1(so);

        to.start();
        to1.start();
    }
}

class SyncObj {
    synchronized void foo() {
        System.out.println("Foo Started");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        bar();
    }

    synchronized void bar() {
        System.out.println("bar started");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        foo();
    }

}

class ThreadObj1 extends Thread {
    SyncObj so;

    public ThreadObj1(SyncObj so) …
Run Code Online (Sandbox Code Playgroud)

java multithreading synchronized

2
推荐指数
3
解决办法
219
查看次数

标签 统计

java ×1

multithreading ×1

synchronized ×1