스레드의 정의
프로세스의 코드에 정의된 절차에 따라 CPU 스케줄러가 CPU에 작업을 요청하는 실행 단위
프로세스끼리는 약하게 연결되어있는 반면, 스레드끼리는 강하게 연결
멀티태스킹 | 멀티스레드 |
여러개의 프로세스를 동시에 구성하는 것 운영체제가 CPU에 작업을 줄 때 시간을 잘게 나누어 배분하는 기법 (time slice) |
하나의 프로세스가 여러개의 스레드로 구성된 것 프로세스 내 작업을 여러개의 스레드로 분할함으로써 작업의 부담을 줄임 EX) 한글 내 문서편집, 문서입출력, 사전, 맞춤법검사 ... |
멀티태스킹을 하게되면 fork() 시스템 호출로 여러개의 프로세스를 만들면 필요 없는 정적 영역이 여러개가 됨
멀티스레드는 코드, 파일 등 자원을 공유하면서 자원의 낭비를 막고 효율성 향상
(하나의 프로세스를 공유하니까 자원을 공유, 프로세스 안에 스레드가 많은거임)
멀티스레드의 장단점
장점 | 단점 |
응답성 향상, 자원 공유, 효율성 향상, 다중 CPU 지원 | 모든 스레드가 자원을 공유하기 때문에 한 스레드에 문제가 생기면 전체 프로세스에 영향을 미침 |