本章讨论同一进程中的多个线程之间如何保持数据的私有性,最后讨论基于进程的系统调用如何与线程进行交互。
可以通过sysconfig函数来得到系统中的限制,包括线程限制。这些限制是为了增强应用程序在不同的操作系统实现之间的可移植性。
线程属性的数据类型是pthread_attr_t结构的指针。
可以用下面的方法初始化和去除线程的属性:
#include <pthread.h>
int pthread_attr_init( pthread_attr_t *attr)
int pthread_attr_destroy( pthread_attr_t *attr)
我们可以用专门的函数来得到和修改线程属性的各种值。
线程的属性主要有:线程的分离状态、线程栈末尾的警戒缓冲区大小、线程栈的最低地址、线程栈的大小。
可以用下面的函数得到线程的分离状态:
#include <pthread.h>
int pthread_attr_getdetachstat( const pthread_attr_t *restrict attr, int *detachstate);
int pthread_attr_setdetachstate( pthread_attr_t *attr, int detachstate)
分离状态创建线程:
[root@localhost apue]# cat page315.c #include "apue.h" #include <pthread.h> int makethread(void * (*fn)(void *), void *arg) { int err; pthread_t tid; pthread_attr_t attr; err = pthread_attr_init(&attr); if(err != 0) return (err); err = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED); if(err == 0) err = pthread_create(&tid, &attr, fn, arg); pthread_attr_destory(&attr); return(err); }
原文:http://blog.csdn.net/huang2009303513/article/details/19629023