반응형

program이란 단순 코드를 의미할 수도 있고, 일반적으로 특정 디바이스에서 동작하는 앱을 프로그램이라고 통상적으로 얘길 한다.

processor는 cpu와 기타 기능을 포함하는 HW를 말하며 process는 실행 중인 program을 의미한다.

processor에는 전역변수, 열린 파일, 시그널, 주소공간 그리고 하나 이상의 실행중인 thread등을 포함한다.

thread는 process 안에 있는 활동을 가진 객체를 지칭하며 각 thread는 고유 PC(Program Counter), Stack 그리고 process register를 갖는다.

커널은 프로세스가 아닌 각각의 thread를 scheduling 한다.



gcc thread.c -o thread -lpthread

 1 #include <pthread.h>
  2 #include <stdio.h>
  3 #include <stdlib.h>
  4 #include <unistd.h>
  5
  6 void *firstThreadRun()
  7 { 
  8    while(1)
  9    { 
 10       sleep(1);
 11       printf("start first thread\n");
 12    }
 13    return 0;
 14 }
 15
 16
 17 void *secondThreadRun()
 18 { 
 19    while(1)
 20    { 
 21       sleep(3);
 22       printf("start second thread\n");
 23    }
 24    return 0;
 25 }
 26
 27
 28 int main(void)
 29 { 
 30    pthread_t firstThread, secondThread;
 31    int threadErr;
 32
 33    if(threadErr = pthread_create(&firstThread, NULL, firstThreadRun, NULL))
 34    { 
 35       printf("thread error= %d", threadErr);
 36    }
 37
 38
 39    if(threadErr = pthread_create(&secondThread, NULL, secondThreadRun, NULL))
 40    { 
 41       printf("thread error= %d", threadErr);
 42    }
 43
 44    while(1);
 45    return 0;
 46 }


output

start first thread
start first thread
start second thread
start first thread
start first thread
start first thread


반응형

'Algorithm' 카테고리의 다른 글

[c++]baekjoon 9012  (0) 2021.04.04
[c++]baekjoon 10773  (0) 2021.04.04
[c++]baekjoon 10828  (0) 2021.04.04
[c++]baekjoon 4949  (0) 2021.04.03
[c++]stack 사용  (0) 2021.04.02

+ Recent posts