欢迎光临散文网 会员登陆 & 注册

15.多线程——线程基本函数

2023-06-25 22:08 作者:M青春永不言弃  | 我要投稿

gcc  xxx.c -o xxx -lpthread

   怎么样创建一个线程。

   线程创建函数

   函数功能:创建一个线程

   函数原型:int pthread_create(pthread_t *thread, const pthread_attr_t *attr,

                          void *(*start_routine) (void *), void *arg)

   函数头文件:#include <pthread.h>

   函数参数:thread:他就是保存线程的id

             attr:线程的属性,一般填写NULL

             start_routine:他就是你要创建的线程的入口函数

             arg:他就是你给线程函数传递的参数

   函数返回值:成功返回0 失败返回不同的数。

 

 

   函数功能:线程的正常退出

   函数原型:void pthread_exit(void *retval)

   函数头文件:#include <pthread.h>

   函数参数:retval:一般填写NULL

   函数返回值:无

 

 

   函数功能:等待指定的线程退出

   函数原型:int pthread_join(pthread_t thread, void **value_ptr);

   函数头文件:#include <pthread.h>

   函数参数:thread:你要等待退出的线程id

             value_ptr:一般是线程退出的状态,一般写NULL

   函数返回值:成功返回0 失败返回对应的数

 

 

   函数功能:取消一个正在运行的线程

   函数原型:int pthread_cancel(pthread_t thread);

   函数头文件:#include <pthread.h>

   函数参数:thread:就是你要取消那个线程的id

   函数返回值:成功返回0 失败返回对应的数

 

   这两个函数是配对使用的

   函数功能:线程清理函数

   函数原型:

             void pthread_cleanup_pop(int execute);//决定了是否执行注册的清理函数

             void pthread_cleanup_push(void (*routine)(void*), void *arg);//注册你要清理的函数。

 

   函数头文件:#include <pthread.h>

   函数参数:execute:0代表不执行清理函数,其他的都代表执行清理函数

             routine:注册的清理函数

             arg:给清理函数传递的参数

   函数返回值:无

   注意:这里的函数他遵循咱们的栈的操作,先进后出




15.多线程——线程基本函数的评论 (共 条)

分享到微博请遵守国家法律