注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

王金龙 廊坊师范学院信息技术提高班十二期

习惯决定性格,性格决定命运!

 
 
 

日志

 
 

【并发编程】——线程通信-线程之间的通信  

2018-05-27 22:55:52|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
【并发编程】——线程通信-线程之间的通信 - 12期 王金龙 - 王金龙 廊坊师范学院信息技术提高班十二期

线程是程序中的个体,如何让多个线程之间通信,整体?

面试题1以上小知识点的说明。

(阿里)面试题2demo1的实现方式不好,第二个线程一直在轮询判断size==5,能不能用java中线程通信的方式重构代码?

方案:wait/notify

创建普通的object,拿对象当把锁。 获得锁,循环往容器中添加元素。

 

if == 5时唤醒另一个线程。waitnotify都是object对象中的方法,但是一定要使用同一个对象才行,同一个lock对象,这边notify,那边可能就在等待线程被唤醒,

t2,获得同一个锁lock

先启动t2后启动t1why

先添加5个元素之后u,发出通知,又添加了5个元素,等1线程完成了之后,t2才收到通知。也就是说不是实时性的。

说明:t2启动后执行t2run(),获得唯一一个lock对象锁,紧接着去判断size是否等于5,如果不等于,就在waitt2一直在等着,等着过程中由于是wait(),所以他会释放锁,t1 在执行run()时是能够获得lock锁的,循环10次,在size==5时能唤醒那边的线程notify()。但是并不代表当前lock被释放,直到10次后,释放锁,之后t2才能获取这把锁。

 
【并发编程】——线程通信-线程之间的通信 - 12期 王金龙 - 王金龙 廊坊师范学院信息技术提高班十二期


(阿里)面试题3以上wait/notify实现方式有什么弊端吗?

答:实时性的问题:描述:查询数据量足够大时100万,要查的数据在第五条就能查到,肯定不能等都查完之后再让其他线程收到信息啊。

解决方案:并发包下的工具类CountDownLatch。实时通知。

也是类似waitnotify,但是不需要关键字synchronized

 
【并发编程】——线程通信-线程之间的通信 - 12期 王金龙 - 王金龙 廊坊师范学院信息技术提高班十二期
  评论这张
 
阅读(4)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018