1
ConcurrentLinkedDeque를 다중 스레드 응용 프로그램에서 사용할 수 있다는 두 가지 기본 차이점을 알고 있습니다.ConcurrentLinkedDeque 대 ArrayDeque
잘못 사용하면 응용 프로그램의 성능에 어떤 영향을 줄 수 있습니까? 예를 들어 ConcurrentLinkedDeque와 ArrayDeque를 사용해야하는 경우를들 수 있습니다.
ConcurrentLinkedDeque를 다중 스레드 응용 프로그램에서 사용할 수 있다는 두 가지 기본 차이점을 알고 있습니다.ConcurrentLinkedDeque 대 ArrayDeque
잘못 사용하면 응용 프로그램의 성능에 어떤 영향을 줄 수 있습니까? 예를 들어 ConcurrentLinkedDeque와 ArrayDeque를 사용해야하는 경우를들 수 있습니다.
다중 스레드에서 큐에 대한 동기화 된 액세스가 필요한 경우 ConcurrentLinkedDeque
을 사용하십시오 (그렇지 않은 경우 ArrayDeque
).
마침표.
잘못된 스레드를 사용하면 멀티 스레드 설정에서 ArrayDeque
에 액세스하려고하면 큐가 손상됩니다.
마침표.
성능에 대한 유일한 고려 사항입니다. 다른 모든 것은 논박의 대상입니다.
강의 끝;
멀티 스레드 응용 프로그램에서 사용할 경우 어떻게 deque ArrayDeque가 손상 될 수 있습니까? – ketan
'ArrayDeque'는 다중 스레드가 동시에 액세스하려고하지 않도록하는 데 필요한 스레드 동기화를 제공하지 않습니다. 예를 들어, 쓰레드 "A"가 addFirst()를 시도하는 동안, 쓰레드 "B"가 같은 시간에 _, removeFirst()를하려고하는 것을 상상해 보라. 이는 서로 충돌하여'ArrayQueue'를 혼란스러운 상태로 남겨 둘 수 있습니다. –
ConcurrentLinkedDeque는 동기화를 제공하지 않습니다. 클래스와 수퍼 클래스를 Ctrl-F로하면 잠금이나 동기화 된 구문을 사용할 수 없습니다. sun.misc.Unsafe의 compreAndSwap을 사용합니다. –