当前位置: 技术问答>linux和unix
创建阻塞的线程?
来源: 互联网 发布时间:2017-05-26
本文导语: 能不能创建一个线程,默认是阻塞的,直到显示让它运行?就像windows里面CREATE_SUSPENDED标识和ResumeThread函数使用~一般怎么实现这个方式的呢? | int sem_post(sem_t *sem); 功能: 增加信号量的...
能不能创建一个线程,默认是阻塞的,直到显示让它运行?就像windows里面CREATE_SUSPENDED标识和ResumeThread函数使用~一般怎么实现这个方式的呢?
|
int sem_post(sem_t *sem);
功能: 增加信号量的值
int sem_wait(sem_t *sem);
功能: 减少信号量的值
int sem_trywait(sem_t *sem);
功能: sem_wait()的非阻塞版本
返回: 成功返回0,出错返回错
定义全局sem_t sem =0;
用sem_wait(&sem)和sem_post(&sem),可以实现你的要求的
功能: 增加信号量的值
int sem_wait(sem_t *sem);
功能: 减少信号量的值
int sem_trywait(sem_t *sem);
功能: sem_wait()的非阻塞版本
返回: 成功返回0,出错返回错
定义全局sem_t sem =0;
用sem_wait(&sem)和sem_post(&sem),可以实现你的要求的
|
用信号量嘛,先定义一个全局信号量为sem为0,把pthread_wait(sem)放在你需要阻塞的线程的前面,它就会默认等待,当sem大于零时才会运行,所以当你要求的条件在另一个线程满足条件时就用一个pthread_post(sem),这是对sem加1,这时你阻塞的线程就会启动了。
|
可以阻塞在一个信号量上
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。