C++中使用pthread_create()函数创建线程,需要引入头文件#include
。该函数的原型如下:
int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);
其中,thread
是线程标识符,attr
是线程属性,start_routine
是线程入口函数,arg
是传递给线程入口函数的参数。
使用方法
定义一个线程标识符:pthread_t thread;
,定义一个线程属性:pthread_attr_t attr;
,设置线程属性:pthread_attr_init(&attr);
,调用pthread_create()
函数创建线程:pthread_create(&thread, &attr, start_routine, arg);
其中,start_routine
是线程入口函数,arg
是传递给线程入口函数的参数,它们都是由用户自定义的。
线程入口函数的原型如下:void *start_routine(void *arg)
,其中,arg
是函数的参数,它是由pthread_create()
函数传递进来的。
线程入口函数的返回值是void *
,如果线程需要返回值,可以使用全局变量或者将返回值作为参数传递给pthread_exit()
函数,在pthread_join()
函数中获取线程的返回值。
使用pthread_join()
函数等待线程结束,该函数的原型如下:
int pthread_join(pthread_t thread, void **retval);
其中,thread
是线程标识符,retval
是线程的返回值。
一下,使用pthread_create()
函数创建线程的步骤如下:
- 定义一个线程标识符:
pthread_t thread;
- 定义一个线程属性:
pthread_attr_t attr;
- 设置线程属性:
pthread_attr_init(&attr);
- 调用
pthread_create()
函数创建线程:pthread_create(&thread, &attr, start_routine, arg);
- 使用
pthread_join()
函数等待线程结束:pthread_join(thread, retval);