本帖最后由 刘源 于 2012-7-11 17:48 编辑
今天练习写死锁,发现一个BUG。大家都是看的毕老师的死锁视频把,多余的程序我就不写了。就这点不一样.
class DeadLockDemo
{
public static void main(String[] args)
{
Ticket t = new Ticket();
Thread t1=new Thread(t);
Thread t2= new Thread(t);
t1.start();
//try{Thread.sleep(10);}catch(Exception e){}
t.flag = false;
t2.start();
}
}
就红色的那句话,特别有意思,为什么我加了这句话之后10次基本上9次都会出显死锁。而把这句话去掉了之后,10次中到现在一次死锁都没有发生呢,难度死锁程序还和它有关系吗?
去掉这句话之后线程1和2还是交替有运行。并不是一直就一个线程运行,而且我的基数也是1000,希望知道的大神们解答下。其他同学也希望你们试下,看看是不是我这机器出问题了。
|