상세 컨텐츠

본문 제목

Lock 기초

똑똑한 개발/C++ 게임개발

by 성댕쓰 2021. 8. 2. 23:09

본문

메모리를 공유하기 위해 보통 Lock을 많이 쓴다.

  - 공용 API로 c++11부터 std::mutex를 지원한다. mutex m; m.lock(); m.unlock() 으로 사용할 수 있다.

  - mutex는 mutual exclusive로 lock 범위에 있는 코드는 한 쓰레드만 실행하도록 잠근다.

  - recursive mutex를 이용해 같은 mutex로 lock을 잡고 해제할 수 있다.

  - RAII패턴을 이용한 lock_guard가 있다. 범위를 벗어나면 자동으로 lock을 unlock한다.

  - std::unique_lock도 lock_guard와 비슷하다. 몇 가지 다양한 옵션이 더 있다. unique_lock 만들기만 하고 실제 lock은 나중에 잡는 인터페이스등이 있다.

  - lock을 잡는 범위는 상황에 따라 잘 판단한다.

 

'똑똑한 개발 > C++ 게임개발' 카테고리의 다른 글

Lock 구현 이론  (0) 2021.08.03
Dead Lock  (0) 2021.08.03
Atomic  (0) 2021.08.02
쓰레드 생성  (0) 2021.08.02
멀티쓰레드 개론  (0) 2021.08.01

관련글 더보기

댓글 영역