멀티 스레딩?
- 한 프로세스를 여러 수행단위(스레드)로 나눠 처리하는 것을 말함
- 사용자에 대한 응답성이 향상됨
- 자원을 공유하고 코드 공유의 이점이 있음
- 자신이 속한 프로세스의 자원들을 공유하기 때문에 경제적임
- 멀티 프로세서인 경우에 각 스레드가 병렬로 수행할 수 있음
- 멀티 스레드는 캐시나 TLB(변환 색인 버터)와 같은 하드웨어 리소스를 공유할 때 서로 간섭할 수 있음
- 하나의 스레드만 실행 중인 경우 실행 시간이 개선되지 보단 오히려 지연될 수 있음
- 멀티 스레드의 수행이 예측 불가함
- 실행 순서가 보장되지 않음
- 테스트 및 디버깅이 어려움
- 컨텍스트 스위칭에 상당한 비용이 소모되기 때문에 너무 많은 스레드는 성능이 더 떨어짐
- https://ko.wikipedia.org/wiki/%EB%A9%80%ED%8B%B0%EC%8A%A4%EB%A0%88%EB%94%A9
- http://codedragon.tistory.com/3525