登录
首页 >  Golang >  Go问答

Clojure 中使用带有超时的 Golang Ctx

来源:stackoverflow

时间:2024-02-26 12:18:27 459浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《Clojure 中使用带有超时的 Golang Ctx》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

在 clojure 并发中,如果我生成的线程需要很长时间才能完成其任务,我希望它能够自行终止,类似于 Golang ctx withtimeout 提供的功能。我该怎么做?

请注意,我对 java 线程没有任何了解。


解决方案


您无法干净地杀死 Java 线程,因此人们通常会编写运行时间很长的线程来偶尔检查标志,并仅在适当的情况下继续工作。

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

当您进行大量异步操作时,Clojure 的 core.async 库中更好的类似 Go 的代数可能会很有帮助 (https://clojure.github.io/core.async/),作为原始 Java 线程的替代方案。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>