美国华人网FuninUSA|唐人社区|北美华人论坛:找好货,找礼品卡,找折扣,找工作,找内推,找项目,找股票

 找回密码
 立即注册
  • 用上这款全球唯一鼠标! iPad秒变电脑
  • 增长惊人 SSD有望取代传统硬盘
  • 高校建真实版《王者荣耀》大峡谷 去峡谷上课
  • 网约车司机深夜遇“鬼”:只闻见香水味不见人
  • 马云怼阿尔法狗So TM What?棋圣聂卫平:围棋他不懂
  • 端午到 一定要小心“硼砂粽”!
  • 抽签时 先抽和后抽公平吗?
  • 数万蜜蜂“空袭”英国小镇:爬满玻璃不敢出门
  • 5颗小行星正向地球飞来 其一擦肩而过
  • 联想CEO杨元庆“约赌”小米 雷军回应:向联想学习
  • 当亚马逊股价触及999美元之后,它的下一步是什么?
  • AMD竟是标准普尔500指数中表现最差的股票!
  • 困难时期结束,沃尔玛股价78美元指日可待!
  • 任天堂股票创下八年新高!!
  • 百思买从零售大灾难中逃脱了?
  • 哈哈!官司终于结束,黑莓收到9.40亿美元的赔偿
  • 来看看美国第1季度的GDP
  • 纳斯达克指数:1996年以来从未出现过……
  • 美国新神——苹果、亚马逊、Netflix、谷歌……
  • 原油在暴跌之后终于稳定下来
Logo1-800-PetMeds Free Shipping $49Take $10 Off Your First Order w/code: SAVE10 - 234 x 60
ASICS AmericaPagoda Piercing Banner 234x60Sierra Trading Post
搜索
查看: 3070|回复: 9

内推面经 -再问一个blockingqueue的问题- 唐人社区|北美华人论坛

[复制链接]

23

主题

251

帖子

297

积分

中级会员

Rank: 3Rank: 3

积分
297
QQ
发表于 2016-11-20 19:32:51 | 显示全部楼层 |阅读模式
分享到:
{$content}

唐人社区-北美华人论坛-内推面经版-再问一个blockingqueue的问题


  JobHunting
标 题: 再问一个blockingqueue的问题


blockingqueue已经讨论过不少次了。我想问一下有可能执行enque的thread 和deque的
thread同时在wait吗?还有就是如何保证 enque顺序呢,比如三个enque threads都先
后wait, 唤醒的时候能保证唤醒的是第一个thread吗?Thread scheduling并不能保证
吧?那么不久违反了queueFIFO的性质吗?

--
Look. If you had one shot or one opportunity to seize everything you ever wanted in one moment.
Would you capture it or just let it slip?

【COACH美国代购总群】99634155
回复 百度谷歌雅虎搜狗搜搜有道360奇虎

举报

20

主题

98

帖子

138

积分

注册会员

Rank: 2

积分
138
QQ
发表于 2016-11-20 21:22:03 | 显示全部楼层
JobHunting
标  题: Re:再问一个blockingqueue的问题


jave 有reentrant lock,有实现算法可以保证线程之间fair,但是会造成performance
的degradation。想想也正常吧,no free lunch。
https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/
ReentrantLock.html
--

25

主题

93

帖子

145

积分

注册会员

Rank: 2

积分
145
QQ
发表于 2016-11-20 22:09:03 | 显示全部楼层
JobHunting
标  题: Re: 再问一个blockingqueue的问题


多谢!

我想明白了。我原来想如果deque 和enque thread不会同时等待的话,synchronized +
notify不就行吗?(不是notify all) 后来想到由于synchronized, 他们其实会同时等
待,光notify就不行了。

还有一个问题就是 为什么要用循环array来做,而不用一个local的queue呢?

【 在 DPZC (Chris) 的大作中提到: 】
: 我认为不可能
: queue.






--
Look. If you had one shot or one opportunity to seize everything you ever wanted in one moment.
Would you capture it or just let it slip?

23

主题

64

帖子

115

积分

注册会员

Rank: 2

积分
115
QQ
发表于 2016-11-20 22:14:10 | 显示全部楼层
JobHunting
标  题: Re: 再问一个blockingqueue的问题


1. 要看你讨论是哪里实现的blockingqueue。general的定义只要求queue空和满的时候
wait

2. 在java的specs中,blocking queue必须是thread safe,那么就有可能同时wait

3. 在java中这个顺序是不保证的,不过可以理解为enqueque还未成功,从queue的角度
谈不上谁先谁后
--

5

主题

232

帖子

216

积分

中级会员

Rank: 3Rank: 3

积分
216
QQ
发表于 2016-11-20 23:34:03 | 显示全部楼层
JobHunting
标  题: Re: 再问一个blockingqueue的问题


我认为不可能

【 在 coldknight (冷骑士) 的大作中提到: 】
: 多谢!1,3明白了。2 我的意思是会不会同时 执行deque的thread 进入 while(
queue.
: isEmpty()) { wait();}, 而另一个执行enque的thread进入while(queue.size()==
: limit){ wait();} ? limit capacity大于等于1。
: 我觉得应该不会吧。



--

29

主题

93

帖子

158

积分

注册会员

Rank: 2

积分
158
QQ
发表于 2016-11-21 00:34:59 | 显示全部楼层
JobHunting
标  题: Re: 再问一个blockingqueue的问题



多谢!1,3明白了。2 我的意思是会不会同时 执行deque的thread 进入 while(queue.
isEmpty()) { wait();}, 而另一个执行enque的thread进入while(queue.size()==
limit){ wait();} ? limit capacity大于等于1。

我觉得应该不会吧。

【 在 refurbish (refurbish) 的大作中提到: 】
: 1. 要看你讨论是哪里实现的blockingqueue。general的定义只要求queue空和满的时候
: wait
: 2. 在java的specs中,blocking queue必须是thread safe,那么就有可能同时wait
: 3. 在java中这个顺序是不保证的,不过可以理解为enqueque还未成功,从queue的角度
: 谈不上谁先谁后





--
Look. If you had one shot or one opportunity to seize everything you ever wanted in one moment.
Would you capture it or just let it slip?

23

主题

89

帖子

137

积分

注册会员

Rank: 2

积分
137
QQ
发表于 2016-11-21 00:42:59 | 显示全部楼层
JobHunting
标  题: Re: Re:再问一个blockingqueue的问题


多谢!

【 在 zou2016 (middleboy) 的大作中提到: 】
: jave 有reentrant lock,有实现算法可以保证线程之间fair,但是会造成
performance
: 的degradation。想想也正常吧,no free lunch。
: https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/locks/
: ReentrantLock.html



--
Look. If you had one shot or one opportunity to seize everything you ever wanted in one moment.
Would you capture it or just let it slip?

33

主题

99

帖子

170

积分

注册会员

Rank: 2

积分
170
QQ
发表于 2016-11-21 01:15:15 | 显示全部楼层
JobHunting
标  题: 再问一个blockingqueue的问题


blockingqueue已经讨论过不少次了。我想问一下有可能执行enque的thread 和deque的
thread同时在wait吗?还有就是如何保证 enque顺序呢,比如三个enque threads都先
后wait, 唤醒的时候能保证唤醒的是第一个thread吗?Thread scheduling并不能保证
吧?那么不久违反了queueFIFO的性质吗?

--
Look. If you had one shot or one opportunity to seize everything you ever wanted in one moment.
Would you capture it or just let it slip?

26

主题

1185

帖子

2363

积分

金牌会员

Rank: 6Rank: 6

积分
2363
QQ
发表于 2016-11-30 19:35:15 | 显示全部楼层
我了个去,顶了

30

主题

1214

帖子

2420

积分

金牌会员

Rank: 6Rank: 6

积分
2420
QQ
发表于 2016-12-12 06:48:18 | 显示全部楼层
我只是路过,不发表意见
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

美国华人网|唐人社区|什么值得买FunInUSA.net发布的内推面经 -再问一个blockingqueue的问题- 唐人社区|北美华人论坛帖子由网友提供或转载于网络,若发布的内推面经 -再问一个blockingqueue的问题- 唐人社区|北美华人论坛侵犯了您的权益,请联系我们.
Sasa.com

Copyright ©2011 FunInUSA.NET All Right Reserved.  Powered by Discuz! X3.0 小黑屋

本站信息均由会员发表,不代表美国华人网FunInUSA|唐人社区的立场,如侵犯了您的权利请发帖投诉  技术支持: 美国华人网FunInUSA|唐人社区

安全联盟认证 安全联盟认证

快速回复 返回顶部 返回列表