线程之我见,有错误,请指正,谢谢
线程的执行需要cpu资源,而cpu的利用时各个线程进行“轮询”即轮时间片,抛开优先级不说,一个线程如果执行的时候,分配给他的时间片到了,他就要交出cpu执行权,由其他等待cpu的线程来执行,(一个cpu一次只能执行一个线程)。
而sleep()的作用是让当前执行cpu的线程挂起,交出cpu,让其他等待cpu的线程执行,
测试程序:
1 #include<stdio.h> 2 #include<pthread.h> 3 #include<stdlib.h> 4 void *fun(void *p){ 5 int i=0; 6 for(i;i<10;i++){ 7 printf("fun i=%d\n",i); 8 } 9 printf("fun bye bye\n"); 10 return NULL; 11 } 12 int main(){ 13 pthread_t th; 14 if(pthread_create(&th,NULL,fun,NULL)<0){ //pthread_create()函数参数请百度 15 perror("