学习pthreads,使用属性对象创建结合线程和分离线程

来源:互联网 发布:淘宝网如何举报卖家 编辑:程序博客网 时间:2024/05/13 08:52

当我们创建了子线程,是让它犹如脱缰之马,信步驰骋,还是如乖巧听话的孩子,时不时教导一下呢?针对这个问题,本文介绍线程的结合和分离,结构分为三个部分,第一部分给出代码示例,第二部分对代码进行讲解,第三部分是运行结果。

一 代码示例

二 代码讲解

该函数是线程执行的子函数,打印输出线程的ID和一个计算结果,然后终止线程

定义线程变量,属性对象变量和一些常见变量。属性对象变量可以根据自己的需求来设置,从而通过属性对象来设置线程的属性,在这里主要是设置线程的结合和分离属性。

对属性对象变量进行初始化,并设置属性对象是结合的PTHREAD_CREATE_JOINABLE,第二个参数除了结合,还有分离,即PTHREAD_CREATE_DETACHED。本程序创建的线程都是结合,假如你要创建结合的,只需要改变第二个参数就可以了。另外,创建分离的线程,除了使用属性对象外,还可以直接使用pthread_detach(pthread_t tid)函数。
使用属性对象,创建4个线程
pthread_attr_destroy()函数用于销毁由attr指定的属性对象,for 循环是用pthread_join结合4个子线程,该函数的作用是直到被调用执行的线程终止,调用线程才执行下一步程序。最后终止线程。
三 运行结果

 

2 0
原创粉丝点击