java– 访问数组的多个线程

java– 访问数组的多个线程,第1张

概述我试图跨多个线程使用arrayList,其中2个线程向其添加元素,一个线程只检索第一个元素.我知道我可以使用syncronizedList,但我想看看这个实现是否正确.基本上我在同步方法中添加了所有的数组 *** 作publicvoidsynchronizedaddElem(Stringstr){Strings=str.trim();myArray

我试图跨多个线程使用arrayList,其中2个线程向其添加元素,一个线程只检索第一个元素.我知道我可以使用syncronizedList,但我想看看这个实现是否正确.基本上我在同步方法中添加了所有的数组 *** 作

public voID synchronized addElem(String str){  String s = str.trim();  myArray.add(s); }

这个可以吗?

解决方法:

同步写入是不够的,您还需要同步读取.否则,与write同时发生的读取可能会返回不一致的数据,或触发异常:

public synchronized String getFirst() {    if (myArray.size() != 0)        return myArray.get(0);    return null;}

您还可以使用Collections.synchronizedList

List<String> syncList = Collections.synchronizedList(new ArrayList<String>());
总结

以上是内存溢出为你收集整理的java – 访问数组的多个线程全部内容,希望文章能够帮你解决java – 访问数组的多个线程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1116094.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存