Set
과 Queue
이 있다고합시다. set
을 확인하려면 contains(Element)
이고 그렇지 않은 경우 add(element)
은 queue
입니다. 저는 두 단계를 원자 적으로하고 싶습니다.Java에서 한 쌍의 작업을 원자 적으로 실행하기위한 비 차단 전략
하나의 분명한 방법은 synchronized
블록 또는 Lock.lock()/unlock()
방법을 사용하는 것입니다. 스레드 경합 (thread contention) 하에서, 이들은 콘텍스트 스위치를 야기 할 것이다. 이것을 비 차단 방식으로 달성하기위한 간단한 설계 전략이 있습니까? 일부 원자 구조를 사용하고있을 수 있습니까?
짧은 대답 : 아니오. –
'동기화'또는 '잠금'으로 인해 컨텍스트가 변경되어야하는 이유는 무엇입니까? –
이 문맥에서 원 자성이 의미하는 것은 무엇인지 명확하지 않습니다. 원자 적으로하지 않는 것의 결과는 무엇일까요? – axtavt