프로그래밍 언어2016. 7. 25. 16:47

Boost libarary를 공부하고 있는데,

Chapter 10: Concurrency with Boost 부분을 마치고, reference에 Herb Sutter의 강연 동영상 링크가 있길래 호기심에 찾았다가, 좋은 내용인것 같아서 이틀에 걸쳐 시청을 완료했다.

Lock-free programming에 대해 친절하게 설명해 주고 있어, 나중에 다시 참고할 필요가 있을 것 같아 갈무리 해 둔다. (시간이 지나면 또 잊어 버릴 수 있으니... oTL)


Multi-threaded programming을 많이 하지 않다보니, 취약한 부분인데 많은 도움이 되었던 것 같고, 중요(?) 키워드는 다음과 같다.

  • std::atomic 또는 std::atomic_xxx()
  • ABA problem - 첫 번째 thread가 최초 참조한 object가, 두 번째 thread에 의해 변경(삭제 후 다시 생성하였지만, 동일한 주소 또는 위치를 유지)되었지만, 실제로는 다른 object로 변경된 경우 발생하는 문제
  • Linearizability - concurrent programming에서, 두 operation이 겹쳐진 경우(overlapped)에도, 결과적으로는 순차적으로 실행된 것처럼 동작하는 성질(?)
  • Constructor와 destructor는 concurrency관련 이슈가 없다. (instance의 lifetime은 destructor가 호출 되는 순간 끝난다)


다음에 짬 내서, "Herb Sutter - atomic<> Weapons"도 봐야겠다.









Posted by 세월의돌