- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
javadoc 说 Executors.newCachedThreadPool
返回的服务重用了线程。这怎么可能?线程只能通过调用 start
启动一次。那么他们是如何实现的呢?此服务的线程正在无限循环中运行,并且它们的 Runnable
-s 是否按需替换?
最佳答案
一个 Runnable 可以调用另一个 Runnable。
每个线程只运行一个主 Runnable,但那个 Runnable 从共享的 BlockingQueue 中获取 Runnable 并调用它们直到它关闭。
简化了它。
final BlockingQueue<Runnable> queue = ...
Runnable runs = new Runnable() { public void run() {
while(running)
queue.take().run();
}};
您可以阅读代码以了解它是如何真正做到的。
关于java - newCachedThreadPool 是如何复用线程的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12071999/
我尝试使用简单的线程来做到这一点并成功了,但我相信使用线程池我可以更有效地完成同样的事情:)?简单线程: public static class getLogFile implements Runna
我想就 Zeller 一年多前发布的同一个问题询问更多细节... javadoc 说 Executors.newCachedThreadPool 返回的服务重用了线程。这怎么可能? 我知道队列结构是如
javadoc 说 Executors.newCachedThreadPool 返回的服务重用了线程。这怎么可能?线程只能通过调用 start 启动一次。那么他们是如何实现的呢?此服务的线程正在无限循
我想记录由 newCachedThreadPool 调用创建的 Activity 线程数。我似乎无法找到从哪里获得这个值。 最佳答案 您可以通过 ThreadFactory至 newCachedThr
我正在为我的应用程序实现一个线程池,我想将 newCachedThreadPool 与 ThreadFactory 一起使用,我想知道我下面写的是否正确。 1.使用newCachedThreadPoo
这个问题在这里已经有了答案: Executors.newCachedThreadPool() versus Executors.newFixedThreadPool() (8 个答案) 关闭 7 年
我做了两个独立的数据库并行读取实现。第一个实现是将 ExecutorService 与 newCachedThreadPool() 构造函数和 Futures 一起使用:我只需调用一个为每个读取案例返
使用Executors.newCachedThreadPool()时,线程池中最初创建了多少个线程,Javadoc没有指定任何数字,是否有一个保证的数字,我们最初总是会得到10个之类的东西.以下文档:
我正在使用 Executors.newCachedThreadPool() 来处理客户端 api 请求。看来,当平均 10tps 流量时,java 进程的驻留内存会随着时间的推移而增长,并且不会减少。
此方法的规范:https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/Executors.html#newCachedThread
保罗·泰玛 presentation有这一行: Executors.newCacheThreadPool evil, die die die 为什么它是邪恶的? 我会大胆猜测:是不是因为线程数量会无限
在此测试场景中提交的任务(线程)数量也不大。 最佳答案 您需要提供有关如何在池上实例化和调用 submit 的代码示例(IP 在这里应该不是问题,因为我们不需要您的 Callable 类或类似的东西)
我是一名优秀的程序员,十分优秀!