【发布时间】:2016-06-02 17:07:50
【问题描述】:
core.async/thread 返回的一些线程涉及某个进程,我将要关闭这些线程。我没有关闭我的整个程序,只是这些线程。如何终止线程?
Java Thread 类的.stop 方法已被弃用,但我很乐意使用它,除了core.async/thread 返回的不是Thread,而是ManyToManyChannel:
user=> (clojure.core.async/thread)
#object[clojure.core.async.impl.channels.ManyToManyChannel 0x780e97c0
"clojure.core.async.impl.channels.ManyToManyChannel@780e97c0"]
user=> (type *1)
clojure.core.async.impl.channels.ManyToManyChannel
我没有在ManyToManyChannel 上找到任何文档。对于线程类型,这听起来像是一个奇怪的名称,所以这里可能有一些我不理解的基本内容。但这是我目前的幼稚、荒谬的问题:你如何杀死 ManyToManyChannel?
clojure.repl/thread-stopper 似乎对ManyToManyChannels 没有影响。
【问题讨论】:
标签: multithreading clojure terminate core.async