iva*_*ylo 2 java multithreading thread-safety race-condition thread-synchronization
ConcurrentHashMap是线程安全的,但是会发生竞争情况,因为据我了解,仅映射的一部分被锁定并且仅用于写操作,这意味着如果同时存在读取操作,则将存在竞争条件。
但是我也喜欢在这里阅读https://en.wikipedia.org/wiki/Thread_safety
Thread safe: Implementation is guaranteed to be free of race conditions when accessed by multiple threads simultaneously.
Run Code Online (Sandbox Code Playgroud)
我可以说ConcurrentHashMap是线程安全的,但没有完全同步吗?这里正确的术语是什么?
我不知道有“线程安全”的正式定义。
当人们说某个类是线程安全的时,通常是指多个线程并发使用类方法不会导致使阅读过类文档的合理程序员感到惊讶的行为。
“线程安全”的Map含义是:
VirtualMachineError或导致segfault。请注意,以上某些示例是类本身无法阻止的竞争条件的示例。如果您使用线程安全类,则“线程安全” 并不保证您的程序将摆脱竞争条件。它仅保证该类自己的源代码不会成为程序中与线程相关的错误的原因。