티스토리 뷰

728x90

스래드는 프로세스 내부에 존재(프로세스는 하나의 스래드로 구성된 태스크)

- CPU 제어의 흐름(flow of CPU control)

- 실행 단위(unit of execution)

- 한 프로세스 내부에서 스케줄링이 가능한 개체

- 경량(lightweight) 프로세스

 

 

단일 스래딩(single-threading): 프로세스 내부에 오직 하나의 스래드만 존재한다

다중 스래딩(multi-threading): 프로세스 내부에 다수의 스래드들이 존재할 수 있다.

 

 

 

프로세스와 같은 점

- CPU 할당하는 대상(dispatchable objects of CPU)

- 시스템 내부에서의 작업 단위(unit of works in a system)

- 상태를 가지고 있으며 상태 변환이 일어난다.

- 독립적이며 비동기적으로 실행되는 개체이다.

 

프로세스와 다른 점

- 프로세스 내부에 존재한다.

- 프로세스의 코드, 데이터 영역을 공유한다.

- 관리에 필요한 정보량이 훨씬 적다.(경량 프로세스)

- 문맥교환의 오버헤드(overhead)가 작다.

 

 

 

스래드 생성: pthread_create()

프로세스가 생성될 때 기본적으로 하나의 스래드가 존재 -> 단일 스래딩(single threading)

새로운 스래드 생성 가능 ->다중 스래딩(multi-threading)

pthread_create() 라이브러리 함수를 사용하여 새로운 스래드를 생성.

표준 라이브러리가 아님으로 컴파일링시 “-lpthread”를 반드시 첨가해야 한다.

(ex: $gcc thread.c –o thread –lpthread)

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함