我是Java新手。下面是一个代码作为线程和同步的例子。线程和同步示例
public class A implements Runnable{
public synchronized void run(){
/*
some code here
*/
}
}
public class B {
public static void main(String[] args){
A obj1 = new A();
Thread t = new Thread(obj1);
A obj2 = obj1;
Thread t1 = new Thread(obj2);
t.start();
t1.start();
}
}
现在这两个线程会为相同的锁相互阻塞还是会得到两个不同的锁?
谢谢!
你为什么不自己运行的代码,并找到问题的答案? – Paul 2011-12-17 01:57:41
@保罗 - 因为这不会给出一个**明确的**答案。它会告诉你它*看起来像*一个线程阻塞另一个,*每次*你运行它。但是并没有告诉OP有*实际*阻塞(与OP不知道的其他假设机制截然不同),或阻塞*总是*发生。 – 2011-12-17 02:13:19
@Paul - 我想说的是,将同步视为黑盒子并试图弄清楚如何在实验中使用它,这不是一个完美的方法。你有可能得到各种虚假的想法......这会在稍后引起你的注意。 – 2011-12-17 02:16:01