...
lock.lock()
try{
...
}
finally{
lock.unlock()}
...
我注意到,這並不能保證絕對互斥,因爲同步總是這樣,所以兩者之間究竟有什麼區別?同步塊和條件變量鎖之間有什麼區別?
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Guys extends Thread{
public static void go()throws InterruptedException{
final Lock lock = new ReentrantLock();
lock.lock();
try{
System.out.println("global " + main.global);
main.global = main.global + 100;
}
finally
{
lock.unlock();
}
}
public void run(){
try{
for(int i = 0; i <1; i++)
{
System.out.println(this);
go();
}
} catch(InterruptedException e)
{
System.out.println("Interrupted Exception caught");
}
}
}
我的帖子共享一個資源。在這種情況下只能同步工作。
這是哪個平臺? –
哦對不起..它在java –
我認爲它會工作,因爲它被建議作爲替代,但顯然它不是一樣的事情http://stackoverflow.com/questions/5482981/other-way-to-synchronize-method –