unix编程(七)线程控制

线程属性

int pthread_attr_init 初始化

int pthread_attr_destory 销毁

可以设置4个属性

1.detachstate 线程分离状态属性

2.gurardsize 线程栈末尾的警戒缓冲区

3.stackaddr 线程栈最低地址

4.stacksize 线程栈大小


同步属性

在进程共享内存数据的时候,可以设置互斥用于多进程同步


线程特定数据

pthread_key_create 创建一个key,关联线程的私有数据

pthread_key_delete 删除一个key

pthread_once 确保我们将使用的线程创建一个键值

pthread_getspecific 返回键值关联的特定数据


线程和信号

每个线程都有一个信号屏蔽字,信号处理的函数共享的。进程中的某个信号是随机到某个线程处理的。还有新建线程的信号屏蔽字继承创建线程的。

pthread_sigmask 线程屏蔽某个信号集,类似sigprocmask函数(进程中)


int sigwait(const sigset_t *restrict set, int *restrict signop)

这个函数set参数指定了等待的信号集,signop是指向过来的信号。set信号必须之前是被阻塞的。该函数返回之后线程的信号屏蔽集变成之前的。


pthread_kill发送某个信号到线程


线程和fork

子进程通过继承整个地址空间副本,还从父进程那继承了每个互斥量,读写锁,条件变量状态。所以子进程fork返回后,如果不是马上调用exec的话,就需要清理锁的状态。

pthread_atfork可以指定在fork创建子进程之前获取父进程的锁,fork返回之前父进程中对锁的处理,fork返回之前子进程中对锁的处理

你可能感兴趣的:(unix编程(七)线程控制)