社区
Linux/Unix社区
帖子详情
Linux 如何设置等待线程超时
gongyue1983
2010-12-11 10:52:04
我在主线程中起了另外一个线程A, 然后在主线程中等待A线程结束。我想设置一个等待时间,如果在超过等待时间我直接kill掉线程。怎么样实现?
就跟windows 编程中的WaitForSingleObject 同样的功能。 如何实现
谢谢了
...全文
1185
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,工作队列长度为Integer.MAX_VALUE。不同模型下允许接收和处理的最大连接数不同,连接
超时
时间默认为20秒。达到最大连接数后,新请求会进入
等待
队列,队列默认长度100。还提到其与
Linux
CPU及进程
线程
数限制有关。
linux
pthread_cond_timedwait()
线程
同步
本文介绍了
Linux
中使用pthread_cond_timedwait()进行
线程
同步的方法,包括
线程
的
等待
与通知,以及需要注意的问题。
线程
通过该函数
等待
cond条件变量的signal,
超时
会返回。当多个
线程
等待
同一条件变量时,pthread_cond_broadcast()可唤醒所有
线程
。同时,文章提到了
线程
属性
设置
和相关参考书籍。
linux
多
线程
进程休眠,转载:
Linux
多
线程
之
线程
休眠
本文介绍了在
Linux
环境下,如何实现
线程
休眠。传统的sleep()会使整个进程休眠,而通过usleep、select和pthread_cond_timedwait可以实现
线程
级别的休眠。其中,pthread_cond_timedwait()函数能够更优雅地解决
线程
休眠问题,它允许
设置
等待
条件并在
超时
或条件满足时自动唤醒
线程
。
线程
同步信号量
超时
机制demo
本文介绍了在C++和
Linux
环境下,如何为
线程
同步的信号量
设置
超时
机制。通过示例代码(demo)展示了当
线程
A
等待
线程
B的同步信号时,如果使用sem_timedwait函数,当超过设定时间B未发送信号,
线程
A将不再
等待
,继续执行其他业务,避免了任务阻塞的问题。
Linux
信号量使用
本文介绍了
Linux
sem信号量,它用于解决进程或
线程
间共享资源的同步问题,用户态进程可进行
等待
和发送操作。还阐述了信号量的接口,包括初始化、
等待
、释放等,给出了
线程
配合完成设备版本升级的案例,最后指出
设置
超时
等待
时间可能存在的陷阱。
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章