Posix线程编程全面解析:从基础到高级应用
1. Pthreads对象的不透明性与属性操作
Pthreads对象大多被视为“不透明”的,这意味着我们不能直接访问对象的成员,而需通过API函数来获取和设置对象的成员参数。这种设计使得我们可以通过定义对应的获取和设置函数,为Pthreads对象类型添加新的参数。在简单的实现中,这些获取和设置函数可能只是访问属性数据结构中相应成员的宏。
以下是一些常用的线程属性操作函数:
int pthread_attr_init (pthread_attr_t *attr);
int pthread_attr_destroy (pthread_attr_t *attr);
int pthread_attr_getdetachstate (pthread_attr_t *attr, int *detachstate);
int pthread_attr_setdetachstate (pthread_attr_t *attr, int detachstate);
在使用属性对象之前,必须先对其进行初始化。之后,可以使用相应的函数来设置或获取为该对象定义的任何属性。这些操作必须在调用 pthread_create() 之前完成。必要时,属性对象也可以被“销毁”。需要注意的是,单个属性对象可以用于创建多个线程。
线程对象唯一必需的属性是“分离状态”,它决定了线程终止时是否可以被连接。默认的分离状态是 PTHREAD_CREATE_JOINABLE ,这意味着线程在终止时可以被连
超级会员免费看
订阅专栏 解锁全文
19

被折叠的 条评论
为什么被折叠?



