[TIL] 프로세스와 스레드

link717·2021년 10월 31일
0

TIL

목록 보기
51/53
post-thumbnail

🌼프로세스(Process)

프로그램이 메모리에 올라와 실행중인 상태를 프로세스라고 한다. 여러 프로세스를 돌리는 작업은 동시적, 병렬적 혹은 이 둘의 혼합으로 이루어 진다.

  • 동시성(Concurrency): 프로세스 하나가 여러개의 작업을 돌아가면서(Context switching) 작업을 조금씩 수행하는 것을 말한다. 스위칭 작업이 매우 빠르게 수행되기 때문에 마치 동시에 진행되는 것처럼 느껴진다.

  • 병렬성(Parallelism): 프로세스 하나에 코어 여러개가 달려서 작업을 각각 작업을 수행하는 것을 말하며 멀티 코어 프로세스가 달린 컴퓨터에서 할 수 있는 방식이다. CPU의 속도가 발열 등의 물리적 문제로 빠르게 발전하지 못해 그 대안으로 코어를 여러개 달아서 작업을 분담할 수 있도록 만든 것이다.

🌼스레드(Thread)

프로세스가 실행될 때도 그 안에 여러개의 작업이 일어날 수 있는데 이 갈래들을 스레드라고 한다.
프로세스는 컴퓨터의 자원을 나눠서 쓰지만 스레드의 경우에는 자원을 공유한다. 하지만 멀티 스레드일 때 어떤 작업이 동시에 발생했을 경우, 에러가 발생할 수 있기 때문에 스레드를 사용하는 프로그래밍은 오류를 찾거나 디버깅을 하기가 굉장이 까다로운 경우가 많이 있다.

출처: YOUTUBE-얄팍한 코딩사전

profile
Turtle Never stop

0개의 댓글