javadoc说Executors.newCachedThreadPool返回的服务重用了线程.这怎么可能?
一个线程只能通过调用start启动一次.那么他们如何实现呢?这个服务的线程是在一个无限循环中运行,它们的Runnable-s是按需更换的吗?
最佳答案
Runnable可以
调用另一个Runnable.
每个线程只运行一个主Runnable,但Runnable从共享的BlockingQueue获取Runnables并调用它们直到它关闭.
简化它.
final BlockingQueue
您可以阅读代码以了解它是如何实现的.