✨ 오늘 공부한 것
- 최종 프로젝트 SA 작성 - 최종 프로젝트 팀원들과 아이디어 회의
스레드는 데이터와 힙 영역을 공유하기 때문에 한 스레드가 다른 스레드에서 사용 중인 변수나 자료구조에 접근해 엉뚱한 값을 읽어오거나 수정할 수 있다.
→ 동기화를 통해 스레드의 작업 처리 순서와 공유 자원에 대한 접근을 컨트롤 할 수 있다. (ex. 세마포어, 뮤텍스)
각 스레드가 서로 교체될 때 Context Switching이 발생하는데, 이 Context Switching에 걸리는 시간이 커지면 커질수록 멀티 스레딩의 효율은 저하된다. 오히려 많은 양의 단순한 계산은 싱글 스레드로 동작하는 것이 더 효율적일 수도 있다.
❇️ Context Switching?
현재까지의 작업 상태나 다음 작업에 필요한 각종 데이터를 저장하고 읽어오는 작업
하나의 스레드에서 문제가 생긴 경우 다른 스레드들도 같이 영향을 받아 프로그램이 죽을 수 있다.