为了账号安全,请及时绑定邮箱和手机立即绑定

java 线程同步 急求解答

java 线程同步 急求解答

犯罪嫌疑人X 2019-04-18 22:19:38
在多线程编程中,有一个队列(用linkedList实现),里面会有大量数据,先需要多线程进行快速访问,该怎么实现?如列表{'a','b','c','d','e','f'}中,对每个元素都加上字符串‘q’,该怎么实现多线程顺序化访问并添加字符串?求实例简单代码
查看完整描述

5 回答

?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

你要是做作业帮不了你,要是项目实际想解决问题就这么做:

ConcurrentLinkedDeque q = new ConcurrentLinkedDeque(你的LinkedList)

然后这个q就随便多线程玩了。线程安全的。
这个API需要Java7

如果你不用Java7,换成ConcurrentLinkedQueue 也差不多。这个需要Java5

你要是Java5都不用的话就自己同步了。


查看完整回答
反对 回复 2019-05-06
?
ibeautiful

TA贡献1993条经验 获得超5个赞

1.5之后加入的那些ConcurrentXXXXX集合为什么说是线程安全的一直没怎么搞清楚,2个线程同时操作不用加锁也能保证数据正确?我觉得还是要在处理此集合的对方加入集合对象锁。不然还是不能保证数据完整性


查看完整回答
反对 回复 2019-05-06
?
喵喔喔

TA贡献1735条经验 获得超5个赞

感觉你的意思是多线程且分布式的处理这个队列呢,就是a线程处理一部分b线程处理另一部分。 而不是仅仅考虑线程安全问题呢。


查看完整回答
反对 回复 2019-05-06
?
UYOU

TA贡献1878条经验 获得超4个赞

你可以在所有的线程访问你的list之前让他们去竞争获取一个锁对象,谁拿了锁,谁才可以操作,这样的锁对象很多,你再Juc框架里面就能找到!


查看完整回答
反对 回复 2019-05-06
  • 5 回答
  • 0 关注
  • 404 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号