.learn() - page 8
what I have learned so far
-
condition_variable과 동기화 패턴
조건이 충족될 때까지 스레드를 어떻게 재웠다 깨우는가? 바쁜 대기를 없애는 condition_variable, lost/spurious wakeup을 막는 이유, 그리고 생산자·소비자 작업 큐.
-
mutex와 RAII 기반 잠금
여러 스레드가 같은 데이터를 동시에 만지면 왜 망가지는가? race condition을 막는 mutex, 예외에도 안전한 RAII 잠금(lock_guard·unique_lock), 그리고 읽기/쓰기를 구분하는 shared_mutex.
-
인터페이스(Interface)
인터페이스는 객체 간의 상호작용을 위한 계약 역할을 담당한다.
-
Softmax와 Cross Entropy
softmax의 Jacobian 행렬과 Cross Entropy의 기울기를 유도하고, 둘을 합치면 왜 예측값 빼기 정답으로 무너지는지.
-
스레드 만들고 관리하기
실행 흐름을 여러 개 띄운다는 건 무슨 뜻인가? std::thread로 스레드를 만들고 join/detach로 수명을 관리하는 법, 그리고 C++20 jthread의 자동 join과 협력적 취소.