多线程之等待唤醒机制

 总结一下多线程之中重要点——等待唤醒机制

   先用一个通俗的例子来说明等待唤醒机制的原理,小时候,我们都一起玩过一个游戏,名字想不起来了,就是一伙小朋 友,抽出其中最倒霉的一个,其他的就到处跑,逃离最倒霉的,规则:当最倒霉的小盆友要抓住其他小盆友中的一个时,如果反应的快时,说一声“木(定,就是不能动)”,倒霉的小盆友就不能抓他,而去抓其他的,只有等到其他的小盆友来碰他(木的那个)一下,才可以被解救,又当全部木完时,最倒霉的小盆友就变幸运了,同时全部解救。

  分析:最倒霉的小盆友就如CPU,做着切换动作, 其中木的那个小盆友就如一个线程,“木”就如wait(),碰他一下就如notify(),全部解救就如notifyAll(),

   线程之间的关系是平等的,彼此之间并不存在任何依赖,它们各自竞争CPU资源,互不相让,并且还无条件地阻止其他线程对共享资源的异步访问。然而,也有很多现实问题要求不仅要同步的访问同一共享资源,而且线程间还彼此牵制,通过相互通信来向前推进。

  注意点:1在循环式选择上,最好使用while循环,他是需要先判断的,

          2当有很多线程时,唤醒用notifyAll();

 简单的等待唤醒机制代码:


           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值