多线程编程(一):线程创建和退出
#多线程#编程#thread#null#join
一、引言
二、 实例
以下实例中创建了2个线程,其中第一个线程是在 程序 运行到中途时调用pthread_exit函数退出,第二个正常退出。在主线程中,收集这两个线程的退出信息,并释放资源。从实例可以看出,这两个线程是并发运行的。
/*thread.c*/#include <stdio.h>#include <pthread.h> void thread1(void){ int i=0; for(i=0;i<6;i++) { printf("This is a pthread1.\n"); if(i==2) pthread_exit(0); //线程退出 sleep(3); //线程1睡眠,将CPU让给其它线程 }} void thread2(void){ int i; for(i=0;i<3;i++) printf("This is a pthread2.\n"); pthread_exit(0); //打印完以上三条语句后,直接退出} int main(void){ pthread_t id1,id2; int i,ret; ret=pthread_create(&id1,NULL,(void *) thread1,NULL); //创建线程1,线程2 if(ret!=0) { printf ("Create pthread error!\n"); exit (1); } ret=pthread_create(&id2,NULL,(void *) thread2,NULL); if(ret!=0) { printf ("Create pthread error!\n"); exit (1); } pthread_join(id1,NULL); //等待线程结束 pthread_join(id2,NULL); exit (0);}
运行结果:
[root@localhost net]# ./threadThis is a pthread1.This is a pthread2.This is a pthread2.This is a pthread2.This is a pthread1.This is a pthread1.