当前位置:  技术问答>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),可以实现你的要求的

|
用信号量嘛,先定义一个全局信号量为sem为0,把pthread_wait(sem)放在你需要阻塞的线程的前面,它就会默认等待,当sem大于零时才会运行,所以当你要求的条件在另一个线程满足条件时就用一个pthread_post(sem),这是对sem加1,这时你阻塞的线程就会启动了。


|
可以阻塞在一个信号量上

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3