社区
Linux/Unix社区
帖子详情
Linux 如何设置等待线程超时
gongyue1983
2010-12-11 10:52:04
我在主线程中起了另外一个线程A, 然后在主线程中等待A线程结束。我想设置一个等待时间,如果在超过等待时间我直接kill掉线程。怎么样实现?
就跟windows 编程中的WaitForSingleObject 同样的功能。 如何实现
谢谢了
...全文
1217
8
打赏
收藏
Linux 如何设置等待线程超时
我在主线程中起了另外一个线程A, 然后在主线程中等待A线程结束。我想设置一个等待时间,如果在超过等待时间我直接kill掉线程。怎么样实现? 就跟windows 编程中的WaitForSingleObject 同样的功能。 如何实现 谢谢了
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yskcg
2010-12-16
打赏
举报
回复
[Quote=引用 6 楼 yangzhifu 的回复:]
主线程先设置信号处理函数signal,然后启动A线程后添加alarm,然后等待pthread_join(),如果arlam超时,则启动信号处理函数,结束A线程,如果没有则关闭时钟alarm
[/Quote]支持
lvyinghong
2010-12-15
打赏
举报
回复
int pthread_timedjoin_np(pthread_t thread, void **retval,
const struct timespec *abstime);
这个函数应该就可以了
参考http://www.kernel.org/doc/man-pages/online/pages/man3/pthread_tryjoin_np.3.html
然后再用pthread_detach pthread_kill 等结束?
yangzhifu
2010-12-14
打赏
举报
回复
主线程先设置信号处理函数signal,然后启动A线程后添加alarm,然后等待pthread_join(),如果arlam超时,则启动信号处理函数,结束A线程,如果没有则关闭时钟alarm
siatyler
2010-12-14
打赏
举报
回复
4楼才是正解,4楼之前的说的都是针对进程的
wyjkk
2010-12-13
打赏
举报
回复
一边用pthread_join()等待线程结束,另一边利用信号设置超时,如果未超时pthread_join()就结束则立即清除时钟。
lvyinghong
2010-12-13
打赏
举报
回复
自己看看pthread 的函数说明了,肯定是支持类似的超时的
git2500
2010-12-13
打赏
举报
回复
用alarm和signal两个调用就可以实现楼主的功能了
lgch123456
2010-12-11
打赏
举报
回复
不是有个时钟信号嘛,用时钟信号来提示,该时钟设定为你想等待的时间,你可以写一个函数来处理的时钟信号,该函数每次执行的时候去检查下你的主线程是不是已经接受线程A返回,如果返回 你可以忽略时钟信号,否则kill你的线程A
tomcat默认最大
线程
数、
等待
队列长度、连接
超时
时间
tomcat的默认最大
线程
数是200,默认核心
线程
数(最小空闲
线程
数)是10。 在核心
线程
数满了之后,会直接启用最大
线程
数(和JDK
线程
池不一样,JDK
线程
池先使用工作队列再使用最大
线程
数),当达到最大
线程
数后,新的请求会添加到工作队列,工作队列长度是Integer.MAX_VALUE(2147483647)。
linux
pthread_cond_timedwait()
线程
同步
1
线程
的通知
linux
多
线程
进程休眠,转载:
Linux
多
线程
之
线程
休眠
我只想要进程的某个
线程
休眠一段时间的,可是用sleep()是将整个进程都休眠的,这个可能就达不到,我们想要的效果了。目前我知道有三种方式:1、usleep这个是轻量级的,听说能可一实现
线程
休眠,我个人并不喜欢这种方式,所以我没有验证它的可行信(个人不推荐)。2、select这个可以,我也用过这种方式,它是在轮询。3、pthread_cond_timedwait采用pthread_cond_time...
线程
同步信号量
超时
机制demo
信号量的使用在上一节中已经说明,想了解细节的小伙伴跳转一下。在实际工程中,有两个
线程
A和B,如果A一直
等待
B的同步信号,则导致A的任务无法继续执行,若B挂死,则A的其他业务也受影响,所以,为了避免这种情况,需要对B的信号量做一个
超时
机制,那就不能使用sem_wait函数了,可以使用sem_timedwait函数还获取B的信号量,若
超时
,则退出
等待
,继续运行其他的业务逻辑。
Linux
信号量使用
Linux
信号量使用
Linux/Unix社区
23,224
社区成员
74,535
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章