.learn() - page 8
what I have learned so far
-
future, promise, async로 결과 다루기
스레드가 계산한 결과 하나를 어떻게 돌려받는가? mutex+cv 배관을 걷어내는 future/promise, std::async, packaged_task, 그리고 스레드 경계를 넘는 예외 전파.
-
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의 기울기를 유도하고, 둘을 합치면 왜 예측값 빼기 정답으로 무너지는지.