美国华人网FuninUSA_唐人社区_北美华人论坛:找礼品卡,找折扣,找报价,找工作,找内推,找项目,找股票

 找回密码
 立即注册
  • 美国男子因抑郁症吞枪自杀脸全毁 10年后重获新脸
  • 世界上最致命的毒物是什么?
  • 神奇!做到这两件事死亡率下降30%:效果不输天天健身
  • 巨大家猫下水后 网友:原来是真胖
  • 在太空中捏爆气球会怎样?
  • 腰果、蔓越莓、开心果…这些植物你都见过吗?
  • 兽医疑惑收下“泥土块” 洗干净才发现是它
  • 颠覆常识:熬夜又赖床的人其实更聪明
  • 情侣亲热注意!国内电影院有360度无死角夜视摄像头
  • 为什么我们感觉不到地球的转动?
  • 星巴克:零售渠道发展
  • 大多退休职工仍在继续工作
  • AMD“Ryzen”:试图占据更多市场份额
  • 机器人会导致失业,我们需要提前做准备
  • Square股票超出预期,上涨44%
  • 美国各地雇员加入“无移民”抗议活动而被解雇
Logo1-800-PetMeds Free Shipping $49Take $10 Off Your First Order w/code: SAVE10 - 234 x 60
ASICS AmericaPagoda Piercing Banner 234x60Sierra Trading Post
搜索
查看: 3034|回复: 9

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

[复制链接]

20

主题

244

帖子

275

积分

中级会员

Rank: 3Rank: 3

积分
275
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?

【中国海淘拼单总群】36382164
回复 百度谷歌雅虎搜狗搜搜有道360奇虎

举报

18

主题

93

帖子

130

积分

注册会员

Rank: 2

积分
130
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
--

23

主题

90

帖子

137

积分

注册会员

Rank: 2

积分
137
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?

20

主题

60

帖子

93

积分

注册会员

Rank: 2

积分
93
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

主题

224

帖子

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。
: 我觉得应该不会吧。



--

25

主题

81

帖子

138

积分

注册会员

Rank: 2

积分
138
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?

18

主题

84

帖子

118

积分

注册会员

Rank: 2

积分
118
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?

31

主题

93

帖子

162

积分

注册会员

Rank: 2

积分
162
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?

24

主题

1123

帖子

2230

积分

金牌会员

Rank: 6Rank: 6

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

28

主题

1140

帖子

2271

积分

金牌会员

Rank: 6Rank: 6

积分
2271
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|唐人社区

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

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