2011-02-23 47 views
1

我有线程BLOCK问题。请帮帮我。 在我的课上,我有两个对象。一个用于同步线程,另一个用于实际业务操作。java中的线程块问题

这是我的类

Class A{ 
    Object lock = new Object(); 
    B b = new B(); 

    public addSomething(){ 
    synchronized(lock){ 
     b.doThis(); 
    } 
    } 
} 

我有类A的一个实例是“a”和从多个线程访问方法a.addSomething()。我遇到线程BLOCK问题。

+0

您只有一个使用该锁的类的方法?或者是在其他地方使用该锁?你知道线程应该阻塞,直到B.doThis()完成,对吗? – 2011-02-23 12:23:33

+1

你是什么意思线程块问题?希望操作'b.doThis()'不会阻止像IO这样的东西? – adarshr 2011-02-23 12:24:27

+2

您的代码正在执行您(大概)希望它执行的操作。 – SLaks 2011-02-23 12:24:43

回答

2

问题可能在b.doThis()。如果它行为不当(需要很长时间才能执行或者可能永远不会完成),所有其他调用addSomething的线程都将被阻止。