社区
Linux/Unix社区
帖子详情
Linux 如何设置等待线程超时
gongyue1983
2010-12-11 10:52:04
我在主线程中起了另外一个线程A, 然后在主线程中等待A线程结束。我想设置一个等待时间,如果在超过等待时间我直接kill掉线程。怎么样实现?
就跟windows 编程中的WaitForSingleObject 同样的功能。 如何实现
谢谢了
...全文
1108
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
linux
线程
等待
时间,
线程
超时
等待
方法
linux
中select()函数使用
线程
超时
等待
方法
linux
中select()函数使用select系统调用时用来让我们的程序监视多个文件句柄的状态变化的。程序会停在select这里
等待
,直到被监视的文件句柄有一个或多个发生了状态改变。关于文件句柄,其实就是一个整数,通过socket函数的声明就明白了:int socket(int domain, int type, int protocol);我们最熟悉的句柄是0、1、2三个...
等待
线程
的两种方法,方法执行
超时
设置
超时
时间
该方法适合毫秒级
超时
时间,且业务简单的方法,因为其会阻塞主
线程
,不建议用在UI
线程
下,会造成界面卡顿,影响用户体验。并且,
超时
后的
线程
会继续执行,直到执行完成或崩溃或锁死(未验证)。//给个方法取消标记防止
超时
后继续执行。//创建一个
等待
线程
并
设置
超时
时间。if (completedTask == timeouttask)//
超时
了,返回的是
超时
时间
线程
。方法1:
线程
等待
常用方法是TASK.Wait()。//用await不会阻塞UI
线程
。if (q.Wait(1000))//一秒返回。
linux
线程
锁
超时
,互斥锁和条件变量同步
线程
等待
超时
程序问题
/**************************************************************************************//*文件:pthread_cond.c*//*简介:互斥锁和条件变量同步
线程
等待
超时
程序*/...
Linux
多
线程
等待
超时
机制的实现:pthread_mutex_lock/pthread_cond_signal/pthread_mutex_unlock
最近在做一个项目,需要实现两个
线程
之间的
等待
超时
机制。例如A
线程
等待
B
线程
,需要实现
等待
超时
机制。解决方案是利用条件变量实现。 1. 条件变量 条件变量被用来阻塞一个
线程
,当条件不满足时,
线程
往往解开相应的互斥锁并
等待
条件发生变化。一旦其它的某个
线程
改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的
线程
。这些
线程
将重新锁定互斥锁并重新测试条件是否满足。一般说来,条...
Java中如何通过
设置
超时
结束
线程
等待
线程
结束,
超时
后中断
线程
。Future和:提交任务并
设置
超时
,
超时
后取消任务。自定义
超时
机制:轮询检查
线程
状态,
超时
后中断
线程
。:提供更灵活的
超时
控制。第三方库(如 Guava):使用工具类
设置
超时
。选择合适的方法取决于具体场景和需求。
Linux/Unix社区
23,224
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章