我是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