[问题] BlockingQueue

楼主: uopsdod (pcman)   2017-06-24 15:04:20
最近正在看Thinking in Java 4/e, 读一读有些问提陆续想请教大家
作者: ssccg (23)   2017-06-24 15:17:00
就不能确保啊,你把add后面加个thread sleep慢慢加就知道单纯是加10个的动作太快,比consumer开始执行还快
楼主: uopsdod (pcman)   2017-06-27 23:12:00
所以我能说 其实还是用.addAll(..)才算真的安全?
作者: zop (ㄞ肝ㄞ肝~一元二十罐~)   2017-06-28 19:20:00
开个thread用布林判断,全都加入之后再允许存取?
作者: cowbaying (是在靠北喔)   2017-06-29 01:10:00
sync就好了吧...
作者: seedli (带骨的火腿)   2017-07-05 17:44:00
blockingQueue是threadsafe,没问题的put()的API https://goo.gl/3YvvLQ 塞满之后才会wait()
作者: ssccg (23)   2017-07-05 17:59:00
应该说实作上通常不会需要去防止放一个拿一个的问题,通常本来就会希望consumer有空就马上处理,原po的范例程式只是要demo效果写那样的执行结果比较好看,不然真的要按照顺序的话,该用的不是Priority,而是Task之间本来就要有顺序另外addAll是thread safe,但没有保证atomic

Links booklink

Contact Us: admin [ a t ] ucptt.com