死锁和线程的通信
1 定义: 不同的线程分别占用对方需要的同步资源不放弃,都在等待对方放弃自己需要的同步资源,形成线程的死锁
2 过程:例如:主线程利用对象占用了一个同步锁,然后执行sleep方法。如果在sleep过程中没有其他线程进入,则主线程继续执行占用后面的同步锁,不会产生死锁;但如果有其他线程进入,其他线程先占用了后面的同步锁,再去要求第一个同步锁时就产生死锁。
3 Object类中的三个方法:
wait():当前线程挂起并放弃cpu,同步资源使其他线程可访问并修改共享资源,而当前线程排队等候
notify():唤醒正在排队等待同步资源的线程最高者结束等待。因为是队列是先进先出的,所以可以配合wait方法实现交替打印。
notifyAll():唤醒正在排队等待同步资源的所有线程结束等待
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。