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

等待一组子线程退出的问题

    来源: 互联网  发布时间:2017-01-11

    本文导语:  请问 Windows下的函数 WaitForMultipleObjects()----等待一组线程的函数 在Linux下如何实现呢? -------------------------------------- 最好贴点代码,谢谢诸位了 | linux 中没有类似的接口, 但可以使用 pthr...

请问
Windows下的函数 WaitForMultipleObjects()----等待一组线程的函数
在Linux下如何实现呢?

--------------------------------------
最好贴点代码,谢谢诸位了

|
linux 中没有类似的接口, 但可以使用 pthread_detach 函数,让线程退出时,自己释放资源。

线程终止的同步及其返回值

一般情况下,进程中各个线程的运行都是相互独立的,线程的终止并不会通知,也不会影响其他线程,终止的线程所占用的资源也并不会随着线程的终止而得到释放。正如进程之间可以用wait()系统调用来同步终止并释放资源一样,线程之间也有类似机制,那就是pthread_join()函数。

void pthread_exit(void *retval) 
int pthread_join(pthread_t th, void **thread_return)
int pthread_detach(pthread_t th)


pthread_join()的调用者将挂起并等待th线程终止,retval是pthread_exit()调用者线程(线程ID为th)的返回值,如果thread_return不为NULL,则*thread_return=retval。需要注意的是一个线程仅允许唯一的一个线程使用 pthread_join()等待它的终止,并且被等待的线程应该处于可join状态,即非DETACHED状态。

如果进程中的某个线程执行了pthread_detach(th),则th线程将处于DETACHED状态,这使得th线程在结束运行时自行释放所占用的内存资源,同时也无法由pthread_join()同步,pthread_detach()执行之后,对th请求pthread_join()将返回错误。

一个可join的线程所占用的内存仅当有线程对其执行了pthread_join()后才会释放,因此为了避免内存泄漏,所有线程的终止,要么已设为DETACHED,要么就需要使用pthread_join()来回收。

|
再过几天就学到线程了。。。

    
 
 

您可能感兴趣的文章:

  • 大家好,pthread库创建线程,如何等待线程安全退出?
  • POSIX线程的问题:什么函数可以让特定线程等待一会儿?
  • sqlserver iis7站长之家
  • linux下如何在等待线程结束中设置超时?
  • 如何等待线程干净退出?
  • 请教:pthread_join( )在等待一个已经退出的线程时为何会导致死锁?
  • linux多线程怎么实现等待队列
  • 一个线程里头可以等待多过条件变量吗?
  • 在线等待,甚急,马上给分,一个获得线程ID的问题
  • 急,在线等待!!!请教各位同仁一个多线程的问题??
  • 在线等待:用子线程与ORACLE数据库建立连接的问题。
  • Linux/Unix/POSIX thread 如何等待线程的结束,并且可指定超时?
  • SCO UNIX 5.05下的线程软件包可以从哪里获得?(在线等待)
  • 在Linux下如何等待线程终止,又不会阻塞
  • 如何让一个线程再次等待
  • 等待大侠出手相救,在多线程程序中执行system函数导致CPU利用率不停的增长的问题。
  • linux下面如何让线程等待多个事件?
  • 帮忙怎样写有关 unix下的线程的问题(在线等待,急用,谢谢)
  • linux下main thread如何使用pthread_join等待子线程结束后再退出
  • 在java应用程序中,可不可以等待某个线程执行完后才执行后面的代码
  • 父进程等待子进程n秒,如果子进程正常退出,父进程立即继续向下执行,如果子出现进程故障一直不退出,父进程等待n秒后继续向下执行,请问
  • 管道中的父进程要不要等待子进程的退出?
  • 在Servlet做的一个服务器上怎么才能确认一个用户已经退出?(在线等待!急!!!)
  • 如何设定“确定”和“取消”按钮的退出属性?(昨日未解决,今日重问)在线等待
  • 为什么这个监听器一注册,程序就退出 (j2me 关于短信接收的问题),分不够再加,在线等待
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 100分,等待,在线等待:防火墙问题?
  • linux下的vi中的乱码问题(急急急,在线等待!!!!!!,解决问题给高分)
  • 关于信号问题,在线等待
  • 等待回执造成的信息堵塞问题
  • linux下 SOCKET 通信问题(在线等待,急!!!)
  • FreeBSD安装问题!(在线等待)
  • 安装问题 急!!!在线等待
  • 有关liunx启动的问题?在线等待!!!
  • jsp小问题(在线等待)
  • 在线等待!cmp的问题
  • 在线等待,简单问题!
  • 关于等待某个事件的问题
  • 父进程的等待问题
  • iptables 问题 在线等待!!
  • openSuSE11远程桌面应用问题,在线等待!
  • 关于JavaBean 和标签库Tag的问题???在线等待谢谢各位老大的帮助!来者有分!!
  • 在线等待,linux,windows2000,安装问题!满分赠!
  • Linux下的JBuilder问题?(在线等待!)
  • 再线等待,我的问题:
  • redhat8.0中网卡的问题..(在线等待)
  • 等待IO时,进程是不是一定被切换到 "等待IO"的状态上去
  • 为什么我等待一个子进程的终止总是等待失败啊?
  • 等待输入操作
  • 急问:如何得到linux下c程序运行中的IO等待时间?
  • 如何在servlet中实现“正在查询,请等待”的功能
  • Linux 中如何等待一个信号
  • linux 下如何等待某个进程结束
  • “死锁就是循环等待”这句话不对吗?谢谢!
  • 用while循环等待事件发生时是否可以释放系统资源
  • 大家好,linux内核中等待队列如何使用?哪儿有这些资料?谢谢各位
  • 60分,求知JBuilder的CD-KEY! 在线等待


  • 站内导航:


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

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

    浙ICP备11055608号-3