gpt4 book ai didi

Java Bitset - “Not Thread-Safe” 的完整含义是什么

转载 作者:行者123 更新时间:2023-11-30 07:12:03 26 4
gpt4 key购买 nike

我知道 java.util.BitSet 操作不是线程安全的。仅在并行线程中读取和写入 BitSet 是否会导致信息永久丢失(在应用程序的当前运行时)?或者写操作执行正确,只有当前并行读操作可能返回错误信息,后面的读操作返回正确信息。换句话说,我的意思是,如果我只同步写操作,让写操作与读操作并行运行,是否还会永久丢失一些信息?

最佳答案

唯一的线程安全操作是读取与读取:内存中不会写入任何内容,可以从任何线程访问内存,没有任何问题。

但是,当您进行读取与写入时,您可能会感到惊讶,例如:在写入时读取可能会给您一半的先前结果和一半的新结果,因为位域不是原子的。

在您的问题中,您接受并发读/写在读取中返回不正确的结果。那么,如何知道读取返回的数据是否正确呢?读多次并取平均值?

因此您也必须将读取操作与写入操作同步。

编辑:如果你真的想走“我不在乎读取时数据是否损坏”的路,我建议你在发出的数据中添加CRC,如果不正确,你可以拒绝数据。

关于Java Bitset - “Not Thread-Safe” 的完整含义是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39075525/

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