gpt4 book ai didi

java vector 和线程安全

转载 作者:搜寻专家 更新时间:2023-11-01 01:03:32 27 4
gpt4 key购买 nike

我想知道这段代码是否会带来任何麻烦:

我有一个在多个线程之间共享的 vector 。每次线程必须从 vector 中添加/删除内容时,我都会在 synchronized block 下进行。但是,主线程有一个调用:

System.out.println("the vector's size: "+ vec.size());

这不是同步

这会引起麻烦吗?

最佳答案

所有 Vector 方法本身都是同步的,因此只要您只围绕单个方法进行同步,您自己的同步就没有必要。如果您有多个相互依赖的方法调用,例如像 vec.get(vec.size()-2) 这样的东西来获取倒数第二个元素,你必须使用自己的同步,否则 vector 可能会在 vec.size() 和 vec 之间改变.get().

关于java vector 和线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1658697/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com