Multithreaded Programming (Part 1): Thread Creation and Termination
#Multithreading#Programming#thread#null#join
I. Introduction
II. Example
This example creates two threads. The first thread exits by calling the pthread_exit function midway through its execution, while the second thread exits normally. In the main thread, the exit information of these two threads is collected, and resources are released. As can be seen from the example, these two threads run concurrently.
/*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);}
Execution Result:
[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.