多线程的基本编程-爱代码爱编程
目录
一、pthread_create函数如何使用
pthread_create接受四个参数 第一个参数是新创建的线程id指向的内存单元,理解成线程编号即可 第二个参数是线程属性不需要详细了解,写个NULL 第三个参数是创建的线程执行的地址 第四个参数可直接写成NULL
二、pthread_join函数
(1)为什么要使用pthread_join函数
首先我们要知道一旦主线程结束,如果子线程还没结束,那么他就会被操作系统杀死,所以需要等待子线程先结束,一旦调用该函数,那么主线程就会等他!
(2)基本使用
pthread_join接受两个参数 第一个参数是进程id 第二个参数是线程执行函数的返回值,可以写成NULL
三、简单的多线程编程
#include<pthread.h> #include<stdio.h> #include<stdlib.h> //如果想将一个函数当做执行的线程的话一定要在函数名前加个*,后面创建线程地址直接引用 //其中的void* data参数一定要写,不然会报错,可当成固定格式 void *p1(void* data) { printf("i am child"); } int main() { pthread_t t;//可以理解成是线程的id //创建线程 pthread_create(&t,NULL,p1,NULL); //等待子线程,防止主线程结束,子进程被杀死,导致子进程未执行 pthread_join(t,NULL); return 0; }