【问题标题】:ExecutorService static in each instance of server class?ExecutorService 在服务器类的每个实例中是静态的吗?
【发布时间】:2019-12-28 19:46:03
【问题描述】:

我在做一个Java项目,对服务器端有些疑惑。

我有一个类,它将有多个实例(每个客户端请求一个实例)。在这个类中,有 4 个不同的任务要做,所以我创建了一个有 4 个线程的 ThreadPool,但我怀疑执行器是否必须是静态的,因为我应该在服务器停止时调用一个 Listener 来杀死线程,对吧?

ExecutorService executor = Executors.newFixedThreadPool(4);

谢谢。

【问题讨论】:

  • 关闭需要监听的线程池contextDestroyed,可以看到stackoverflow.com/q/35996274/217324
  • 也许我错了,但是对于我的 API Rest 的每个请求,都会创建一个新的类实例,不是吗? @NathanHughes
  • 是的,但是如果为每个实例创建一个新的 ExecutorService,我如何关闭不同执行器的所有线程。谢谢。 @NathanHughes

标签: java concurrency server static executorservice


【解决方案1】:

你能看看这是否可以移动到共享线程池,使用公共静态实例化 ThreadPoolExecutor

如果为每个请求创建新线程,那么服务器最终可能会耗尽线程

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多