我看过几条注释,说Executors比Thread更好,但是如果你有很多Threads通过有界缓冲区进行通信(如在Flow-Based Programming中),为什么你必须使用Executors呢? (使用newCachedThreadPool(?))。另外,我使用像isAlive(),interrupt()这样的方法 - 如何获取Thread句柄?
有没有人有我可以抄袭的示例代码? ; - )
答案 0 :(得分:1)
执行程序基本上是对线程的抽象。它们使您可以在Runnable / Callable实例中隔离可能的并行逻辑,同时使您免于手动创建和启动线程或管理池的职责。您仍然需要将依赖项作为应用程序逻辑的一部分来处理。
如果您希望与应用程序逻辑的Threads进行交互/熟悉,则可以跳过使用Executors。关于获取线程,你总是可以执行Thread.currentThread()来获取任何执行上下文中的当前线程。