<atomic> 에 정의됨

 

oldHead = _head;
while (oldHead && _head.compare_exchange_weak(oldHead, oldHead->next) == false) { }

 

다음과 같이 사용했을 때 compare_exchange_weak 함수는 아래의 작업을 원자적으로 수행한다.

 

if (_head == oldHead)
{ // _head를 다른 스레드에서 바꾸지 않은 상황
	_head = oldHead->next;
    	return true;
}
else
{ //_head가 다른 스레드에 의해 바뀐 상황
	oldHead = _head; // oldHead를 현재의 _head로 변경해준다.
	return true;
}

 

 

 

'공부 > C\C++' 카테고리의 다른 글

c 매크로 - ## (토큰 결합 연산자)  (0) 2025.06.28
typeid 키워드  (0) 2025.06.28
c extern 키워드 (with 선언과 정의)  (0) 2025.06.24
std::move  (0) 2025.06.11
멤버 함수 포인터를 활용한 호출  (0) 2025.03.20

+ Recent posts