当前位置:  技术问答>linux和unix

[求助]如何让阻塞的信号量、recvfrom退出?

    来源: 互联网  发布时间:2016-03-01

    本文导语:  问题是这样的:     现有三线程,线程一(控制线程),线程二、三是一般工作线程,它俩的退出由线程一改变变量(stop)的值来决定,线程二和三中有一个阻塞的recvfrom()。 问题1:    有时要退出线程二、三时...

问题是这样的:
    现有三线程,线程一(控制线程),线程二、三是一般工作线程,它俩的退出由线程一改变变量(stop)的值来决定,线程二和三中有一个阻塞的recvfrom()。
问题1:
   有时要退出线程二、三时,都被recvfrom()挂起,到不了stop那句。如何改善一下?
程序简单如下:
线程二:
void *f(){
   ......
  do{
     if(stop){
        pthread_exit("exit");
     }
     recvfrom();
     ......
  }while(1);
  ......
}
问题2:
    阻塞的信号量,不用sem_post()能让它退出吗?程序和上面的基本相同,只是把recvfrom()换成sem_wait();


先谢。


|
1.对于recvfrom,可以改成调用select来判断是超时还是socket可读。
2.所有的阻塞调用都可以用signal函数来中止。被signal中止的函数通常会返回-1表示失败,可以用errno来查看失败原因

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












  • 相关文章推荐
  • HTML标签参考手册 iis7站长之家
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


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

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

    浙ICP备11055608号-3