하나의 새로운 프로세스를 생성하는 것보다 하나의 새로운 쓰레드를 생성하는 것이 더 적은 비용이 든다.
💡 스레드가 하나일 때 Single Thread Process, 여러 개일 때는 Multi Thread Process라고 한다. 작업관리자-세부정보-상태 우클릭-열선택-스레드 체크 하면 실행중인 프로세스들의 스레드 갯수를 확인할 수 있다.
우리가 사용하는 프로그램들 대부분은 멀티 스레드이다.
장점
시스템 자원을 효율적으로 사용.
응답성이 향상된다. → 한꺼번에 여러프로그램에서 응답받기 가능.
작업이 분리되어 코드가 간결해진다.
단점
보통 아래처럼 쓰레드가 프로세스의 자원을 공유하면서 문제가 생긴다.
(서로 자원을 요구하는) 교착상태가 발생하지 않도록 주의해야 한다. → 작업할 기회를 갖지 못하는 기아 상태에 처한다.
💡 동기화Synchronization 멀티스레드 환경에서 공유 자원의 일관성을 유지하기 위해, 한 번에 하나의 스레드만 자원에 접근하도록 하는 기술.