C++20) Atomic Smart Pointers / std::atomic_flag
std::shared_ptr & std::weak_ptr std::shared_ptr 및 std::weak_ptr은 thread safe 합니다. 그런데 왜 Atomic Smart Pointer가 추가되었을까요? std::shared_ptr은 스레드로부터 '안전' 하면서 '안전하지 않기' 때문입니다. std::shared_ptr은 reference counter와 resource로 구성되어 있습니다. reference counter 자체는 스레드로부터 '안전' 합니다. 그러나 resource의 접근은 안전하지 않습니다. 즉, reference counter 수정은 원자적(atomic)작업이며, resource가 정확히 한 번 삭제된다는 보장이 있습니다. Boost에서는 std::shared_ptr에 대한..