为了账号安全,请及时绑定邮箱和手机立即绑定

Clojure 中的 Golang Ctx WITHTimeOut

Clojure 中的 Golang Ctx WITHTimeOut

Go
守候你守候我 2022-06-13 10:34:02
在 clojure 并发中,如果执行任务需要很长时间,我希望我生成的线程会自行杀死,类似于 Golang ctx withtimeout 提供的。我该怎么做?请注意,我对 java 线程一无所知。
查看完整描述

2 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

您无法彻底杀死 Java 线程,因此人们通常会编写运行时间很长的线程来偶尔检查一个标志,并且只有在适当的时候才继续工作。

另一方面,线程的客户端可以停止等待答案。如果您使用 启动线程future,您可以使用https://clojure.github.io/clojure/clojure.core-api.html#clojure.core/derefderef上的超时参数,或使用 进行检查。future-done?

当你有很多异步的事情发生时,Clojure 的 core.async 库中更好的类似 Go 的代数可能会有所帮助(https://clojure.github.io/core.async/)作为原始 Java 线程的替代品。


查看完整回答
反对 回复 2022-06-13
?
米脂

TA贡献1836条经验 获得超3个赞

没关系,显然有一种东西叫做未来和承诺..



查看完整回答
反对 回复 2022-06-13
  • 2 回答
  • 0 关注
  • 178 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号