函数名称 |
函数功能 |
说明 |
pthread_create |
创建线程 | 线程变量:pthread_t |
pthread_equal |
判断两个线程ID是否相等 |
|
pthread_self |
获得自身的线程ID |
|
pthread_exit |
终止一个线程 |
|
pthread_join |
等待一个线程 |
除非指定线程调用pthread_exit、从启动例程返回或者被取消,否则调用线程将一直阻塞 类似于waitpid的功能 |
pthread_detach | 分离一个线程 |
|
pthread_cancel |
请求取消一个线程 |
并不等待线程终止,仅提出请求 |
pthread_cleanup_push |
注册一个线程退出函数 |
必须与pthread_cleanup_pop成对出现 |
pthread_cleanup_pop |
调用注册的线程退出函数 |
必须与pthread_cleanup_push成对出现 |
pthread_mutex_init |
初始化互斥量 |
互斥量 变量类型:pthread_mutex_t |
pthread_mutex_destory |
销毁互斥量,需要在释放内存前调用 | |
pthread_mutex_lock |
对互斥量进行加锁,如果已经加锁则阻塞 | |
pthread_mutex_trylock |
尝试对互斥量进行加锁,如果已经加锁,则返回EBUSY | |
pthread_mutex_unlock |
对互斥量进行解锁 | |
pthread_mutex_timedlock |
带超时的对互斥量的加锁,时间是绝对时间而非相对时间 | |
pthread_rwlock_init |
初始化读写锁 |
读写锁 变量类型:pthread_rwlock_t |
pthread_rwlock_destroy |
销毁读写锁,需要在释放读写锁占用的内存之前调用 | |
pthread_rwlock_rdlock |
以读模式进行加锁 | |
pthread_rwlock_wrlock |
以写模式进行加锁 | |
pthread_rwlock_unlock |
解锁读写锁 | |
pthread_rwlock_timedrdlock |
带超时的以读模式加锁 | |
pthread_rwlock_timedwrlock |
带超时的以写模式加锁 | |
pthread_cond_init |
初始化条件变量 |
条件变量 适用于异步等待某个处理结果 变量类型:pthread_cond_t |
pthread_cond_destory |
对条件变量进行反初始化,需要在释放条件变量底层的内存空间之前调用 | |
pthread_cond_wait |
等待条件变量为真 | |
pthread_cond_timedwait |
带超时的等待条件变量为真,时间为绝对时间 | |
pthread_cond_signal |
通知线程条件已经满足,至少能唤醒一个线程 | |
pthread_cond_broadcast |
通知线程条件已经满足,唤醒所有等待该条件的线程 | |
pthread_spin_init |
对自旋锁进行初始化 |
自旋锁 与互斥量类似,但不是通过休眠使进程阻塞,而是在获取之前一直在忙等(自旋)。在等待自旋锁可用之前,CPU不能做其他的事情 变量类型:pthread_spinlock_t |
pthread_spin_destory |
对自旋锁进行反初始化 | |
pthread_spin_lock |
获取自旋锁,获取成功之前一直在自旋 | |
pthread_spin_trylock |
获取自旋锁,如果不能成功,立即返回EBUSY | |
pthread_spin_unlock |
解锁自旋锁 | |
pthread_barrier_init |
初始化屏障 |
屏障 当阻塞线程达到设定值,则所有阻塞线程均被唤醒 变量类型:pthread_barrier_t |
pthread_barrier_destroy |
对屏障进行反初始化 | |
pthread_barrier_wait |
线程等待,表明线程已经完成工作,准备等待其他线程赶上来 |
线程的学习(一)
最新推荐文章于 2023-10-14 20:02:37 发布
线程的初步重点在线程的创建、分离、退出、同步。
线程分离:分离的线程在线程完成后,系统会自动回收他的储存器资源;不分离的线程,如果不pthread_join或者不结束整个进程,系统不会回收资源。
线程同步:共有互斥量、读写锁、条件变量、自旋锁、屏障共五种方式。
各种同步,只是提供了一种机制,并不是用了以后就会一定实现同步,仍然需要人为的控制使用逻辑才能实现同步。
线程退出:1、线程可以简单的从启动例程中返回,指return,启动例程,即线程的执行函数
2、线程可以被同一进程的其他线程取消
3、线程调用pthread_exit