내 코드입니다 :P 스레드와 C 언어
이제static long x = 0;
void * thread_func(void *arg){
while(1){
printf("Thread 2 says %ld\n",++x);
sleep(1);
}
}
int main(){
pthread_t tid;
pthread_create(&tid,NULL,thread_func,NULL);
while(x < 10) {
printf("Thread 1 says %ld\n",++x);
sleep(2);
}
return 0;
}
하여 출력한다 무엇인지,이 책은 될 것이라고 말했습니다 :
이제OUTPUT
Thread 1 says 1
Thread 2 says 2
Thread 2 says 3
Thread 1 says 4
Thread 2 says 5
Thread 2 says 6
Thread 1 says 7
Thread 2 says 8
Thread 2 says 9
Thread 1 says 10
Thread 2 says 11
Thread 2 says 12
는 첫 번째는 실이해야하지 않는다 pthread_create()
이 main의 while 루프 앞에 있기 때문에 1이라고 말합니다. 또한 수면은 어떻게됩니까? 스레드가 잠 들어있는 것과 정확히 무슨 일이 생기며, 실행중인 스레드가 잠자기 상태 일 때 어떤 프로세스가 실행됩니까?
즉 수면 (1)과 수면 (2) (1)과 (2)는 무엇을 의미 하는가?
'수면 (1)'의미가 없습니다 : 실 제 1 번, 잠자기하십시오. 운영 체제에 현재 스레드가 지쳐 있는지 알려주고 1 초 동안 낮잠을 자려고합니다. –
당신은 [man 3 sleep] (http://linux.die.net/man/3/sleep)을 참조 할 수있는'sleep' 명령어에 대한 정확한 설명을 위해서. 일반적으로 사용하는 모든 라이브러리 기능에 대한 세부 정보를 찾아 보는 것이 좋습니다. [3 장 맨 페이지] (http://www.kernel.org/doc/man-pages/online/dir_section_3.html)는'pthread _...'함수와 타입에 대한 좋은 참고 자료입니다. – moooeeeep