一、代码案例
#include<stdio.h>
#include<stdlib.h>
// 多线程库
#include<pthread.h>
// 线程1的逻辑描述
void* thread_method_01(void* v){
printf("线程1执行完毕。\n");
return NULL;
}
// 线程2的执行逻辑
void* thread_method_02(void* v){
printf("线程2执行完毕。\n");
return NULL;
}
int main(){
// 1、定义线程变量
pthread_t thread_01;
pthread_t thread_02;
// 2、开始多线程(创建两个线程)
// 参数列表:pthread_t变量的指针、属性变量指针、线程逻辑的函数、参数
pthread_create(&thread_01, NULL, thread_method_01, NULL);
pthread_create(&thread_02, NULL, thread_method_02, NULL);
// 3、需要在此处等待线程完成
// 参数列表:pthread_t 变量、二级void**指针类型// 等待线程thread_01的执行结束
pthread_join(thread_01, NULL);
// 等待线程thread_02的执行结束
pthread_join(thread_02, NULL);
printf("线程已经完成。\n");
return 0;
}
说明:
pthread_create() 函数是创建线程函数,每调用一次就创建一个线程。
pthread_join()函数是让某个线程插队先执行。
也就是让当前线程阻等待指定的线程运行结束后再继续执行。