import java.util.concurrent.TimeUnit;public class Test {
public Object obj = new Object();
class T extends Thread{
public T(){}
public void run(){
try{
while(true){
synchronized(obj){
if(...){
doSomeThing1();
TimeUnit.SECONDS.sleep(1);
}else{
doSomeThing2();
TimeUnit.SECONDS.sleep(1);
}
}
}
}catch(Exception e){
e.printStackTrace();
}
}
}
}代码的模型大致如上,当运行多个线程时,有少数情况会出现共享资源出错的问题,不知道上面的同步方法有什么问题,,求教大家
在你的例子里,Synchronized应该加在“票”被卖出的方法上,而非买票的线程上。
==》
private static Object obj = new Object(); //共享锁2.synchronized 里面调用sleep容易引起死锁