【发布时间】:2021-10-31 12:12:15
【问题描述】:
是否可以将 Jetty Server 配置为不使用线程池,而是每次都创建/终止一个线程?起初我想创建一个简单的ThreadPool 类,但它看起来不像......
我们知道这对性能不是很好,我们正在接受它。
【问题讨论】:
-
你尝试了什么?有一些代码或配置?
-
我刚刚尝试了以下方法,并打算看看它是如何工作的... final ThreadPoolExecutor executor = new ThreadPoolExecutor(0, 200, 0, TimeUnit.MILLISECONDS, new LinkedBlockingQueue()) ; executor.allowCoreThreadTimeOut(true); final ExecutorThreadPool threadPool = new ExecutorThreadPool(executor); final Server jettyServer = new Server(threadPool);
-
Jetty
ThreadPool类基于java.util.concurrent.Executor,这意味着适当的线程池以及适当的连接逻辑。你为什么要这样做?我问,因为也许有不同的方式来实现你的最终目标。 -
无池线程执行器实际上会消耗更多内存并增加您的 GC 活动。我们通过一个实验性的 Jetty 11 分支进行了尝试,以更多地利用 JDK 17 loom 线程,体验在各方面都比传统的线程池差。
标签: java embedded-jetty