需要写一个线程超时功能,但是找到写法,哪个大神给个解决方案。 类似golang的
go fun(){ for{ select{ case <-chan:; case<-time.after(3*time.secode): } }()
1
共 4 条评论, 1 页
需要写一个线程超时功能,但是找到写法,哪个大神给个解决方案。 类似golang的
go fun(){ for{ select{ case <-chan:; case<-time.after(3*time.secode): } }()
评论区
写评论可以用channel实现,我是这样做的:
可以用crossbeam里的channel,用
Condvar::wait_timeout
应该也能造一个简单可用的。操作系统原生线程好像没有这种写法吧,推荐使用async/await,关键字futures, futures::select, futures-timer。
// 等待50millis 退出? thread::sleep(time::Duration::from_millis(50));