进程、线程相关API
1、进程间通讯方法
- Signals
- Pipes
- FIFOs
- File Locking
- Message Queues
- Semaphores
- Shared Memory Segments
- Memory Mapped Files
- Unix Sockets
2、进程间通讯API
3、线程相关API
数据类型
- pthread_t:线程句柄
- pthread_attr_t:线程属性
线程操纵函数(简介起见,省略参数):
- pthread_create():创建一个线程
- pthread_exit():终止当前线程
- pthread_cancel():中断另外一个线程的运行
- pthread_join():阻塞当前的线程,直到另外一个线程运行结束
- pthread_attr_init():初始化线程的属性
- pthread_attr_setdetachstate():设置脱离状态的属性(决定这个线程在终止时是否可以被结合)
- pthread_attr_getdetachstate():获取脱离状态的属性
- pthread_attr_destroy():删除线程的属性
- pthread_kill():向线程发送一个信号
- pthread_mutex_init() 初始化互斥锁
- pthread_mutex_destroy() 删除互斥锁
- pthread_mutex_lock():占有互斥锁(阻塞操作)
- pthread_mutex_trylock():试图占有互斥锁(不阻塞操作)。即,当互斥锁空闲时,将占有该锁;否则,立即返回。
- pthread_mutex_unlock(): 释放互斥锁
- pthread_cond_init():初始化条件变量
- pthread_cond_destroy():销毁条件变量
- pthread_cond_signal(): 唤醒第一个调用 pthread_cond_wait()而进入睡眠的线程
- pthread_cond_wait(): 等待条件变量的特殊条件发生
Thread-local storage(或者以Pthreads术语,称作 线程特有数据):
- pthread_key_create(): 分配用于标识进程中线程特定数据的键
- pthread_setspecific(): 为指定线程特定数据键设置线程特定绑定
- pthread_getspecific(): 获取调用线程的键绑定,并将该绑定存储在 value 指向的位置中
- pthread_key_delete(): 销毁现有线程特定数据键
与一起工作的工具函数:
- pthread_equal(): 对两个线程的线程标识号进行比较
- pthread_detach(): 分离线程
- pthread_self(): 查询线程自身线程标识号