我遇到了一些阴暗的代码,其中 aHashSet
被多个线程同时访问和修改,我想知道这可能会产生什么影响,考虑到 Javadoc 仅解释行为在并发下是“不确定的” , 不同步的访问。
具体来说,是否有可能调用remove(element)
返回true
,但调用的效果永远不会被其他线程看到(即,contains(element)
总是会true
在其他线程中返回)?
PS:只是为了让你放心,我知道这段代码很糟糕,我将用HashSet
等效的同步集合替换。
我遇到了一些阴暗的代码,其中 aHashSet
被多个线程同时访问和修改,我想知道这可能会产生什么影响,考虑到 Javadoc 仅解释行为在并发下是“不确定的” , 不同步的访问。
具体来说,是否有可能调用remove(element)
返回true
,但调用的效果永远不会被其他线程看到(即,contains(element)
总是会true
在其他线程中返回)?
PS:只是为了让你放心,我知道这段代码很糟糕,我将用HashSet
等效的同步集合替换。