<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 |