2

我已经看到了一些关于 Executors 比 Threads 更好的评论,但是如果你有许多线程通过有界缓冲区进行通信(如在基于流的编程中),为什么在你必须使用线程时仍然使用 Executors(使用 newCachedThreadPool (?))。另外,我使用 isAlive()、interrupt() 之类的方法——如何获取线程句柄?

有人有我可以抄袭的示例代码吗?;-)

4

1 回答 1

1

执行器基本上是对线程的抽象。它们使您在 Runnable/Callable 实例中隔离潜在的并行逻辑,同时将您从手动创建和启动线程或管理池的职责中解放出来。您仍然需要将依赖关系作为应用程序逻辑的一部分来处理。

如果您想与应用程序逻辑的线程进行交互/对线程感到满意,您可以跳过使用执行程序。关于获取线程,您始终可以执行 Thread.currentThread() 从任何执行上下文获取当前线程。

于 2012-04-28T06:13:21.443 回答