读书人

多线程事例:wait与notify、sleep

发布时间: 2012-09-19 13:43:53 作者: rapoo

多线程例子:wait与notify、sleep

2011-11-09 22:06:05,930 INFO [sure.Test] - t1 start and sleep2011-11-09 22:06:05,930 INFO [sure.Test] - t1 wait begin2011-11-09 22:06:05,930 INFO [sure.Test] - main lock begin2011-11-09 22:06:05,930 INFO [sure.Test] - t1 get lock, wait begin2011-11-09 22:06:10,930 INFO [sure.Test] - sleep end2011-11-09 22:06:10,930 INFO [sure.Test] - main get lock2011-11-09 22:06:10,930 INFO [sure.Test] - notify2011-11-09 22:06:20,930 INFO [sure.Test] - sleep 10000 end2011-11-09 22:06:20,930 INFO [sure.Test] - main wait begin 2011-11-09 22:06:20,930 INFO [sure.Test] - t1 wait end,release lock2011-11-09 22:06:20,930 INFO [sure.Test] - main wait end2011-11-09 22:06:20,930 INFO [sure.Test] - main lock end2011-11-09 22:06:25,930 INFO [sure.Test] - t1  wait end

这种情况不会造成死锁阻塞。
由于这两个线程都谁都可能先进入同步块中,所以就造成了两个截然不同的情况。但是上面第一种情况就肯定是子进程先进入同步块,因为main进程用sleep拖延了。

读书人网 >网络基础

热点推荐