간단한 질문입니다. 다음 코드는 스레드로부터 안전합니까?HashTable 안의 ArrayList는 thread safe입니다
- 그렇다면 더 좋은 방법이 있습니까 ..?
- 아니요, 이유는 무엇입니까? 어떻게 스레드를 안전하게 만들 수 있을까요? 스레드로부터 안전하지 않습니다
Hashtable
ArrayList
때문에 내부에 있기 때문에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
}
}
감사
스레드에 대한 목록으로 목록을 전달하지 않는 이유는 무엇입니까? – fge
1. 게시 한 부분은 스레드로부터 안전하지만 목록을 처리하는 방법에 따라 다릅니다. 2. Hashtable은 오래된 것이므로 사용하지 마십시오. 예를 들어'ConcurrentHashMap'을 사용하거나'Collections.synchronizedMap (new HashMap())'만 사용하십시오. –
@fge 아니, 나는 싫어. –