我正在尝试探索“ThreadSafe是什么意思?”
以下是我的理解:
对我来说,ThreadSafe似乎是允许多个线程同时访问集合,而不考虑其同步。例如,在没有synchronized关键字的任何方法上,都是线程安全的,这意味着多个线程可以访问它。
开发人员可以选择在此方法上维护一些逻辑(同步),以在多个线程访问时维护数据完整性。这与线程安全无关。
如果我上面的陈述是错误的,请阅读下面的JAVA DOC for `ConcurrentHashMap:`
keySet:该视图的迭代器是“弱一致”的迭代器,永远不会引发ConcurrentModificationException,并保证遍历元素时按照迭代器构造时存在的方式进行,并且可能(但不保证)反映构造后的任何修改。
上面的声明表示,当多个线程修改集合时,keySet迭代器将无法保证数据完整性。
请问,* ConcurrentHashMap的KeySet迭代器是否线程安全?
我的线程安全理解正确吗?
以下是我的理解:
对我来说,ThreadSafe似乎是允许多个线程同时访问集合,而不考虑其同步。例如,在没有synchronized关键字的任何方法上,都是线程安全的,这意味着多个线程可以访问它。
开发人员可以选择在此方法上维护一些逻辑(同步),以在多个线程访问时维护数据完整性。这与线程安全无关。
如果我上面的陈述是错误的,请阅读下面的JAVA DOC for `ConcurrentHashMap:`
keySet:该视图的迭代器是“弱一致”的迭代器,永远不会引发ConcurrentModificationException,并保证遍历元素时按照迭代器构造时存在的方式进行,并且可能(但不保证)反映构造后的任何修改。
上面的声明表示,当多个线程修改集合时,keySet迭代器将无法保证数据完整性。
请问,* ConcurrentHashMap的KeySet迭代器是否线程安全?
我的线程安全理解正确吗?