Sum*_*ngh 0 java concurrency multithreading arraylist thread-safety
简单的问题.以下代码是否是线程安全的......?
我ArrayList
内心的主要疑问是Hashtable
因为ArrayList
不是线程安全的.如果它的一部分也会发生同样的事情Hashtable
.
Hashtable<Thread, List<String>> threadObjects = new Hashtable<Thread, List<String>>();
// lets assume some object is added.
synchronized (threadObjects)
{
thread = Thread.currentThread();
List<String> v = threadObjects.get(thread);
if (null != v)
{
// do something
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢
如果是的话,有没有更好的方法..?
是的,但使用ThreadLocal>
我主要怀疑是因为在Hashtable中有ArrayList,因为ArrayList不是线程安全的.
通常你会是对的,但是这段代码确保只有一个线程访问ArrayList.当然,如果你没有遵循这种模式,它将是线程安全的.
注意:synchronized (threadObjects)
在这种情况下没有任何区别.
归档时间: |
|
查看次数: |
290 次 |
最近记录: |