java - 使用 ExecutorService 最有效的方法

标签 java executorservice

在我的程序中,我编写了一个类,每次触发新值时都会更新一堆监听器。因此,我使用的是 SingleThreadExecutor,这个示例应该更清楚。我担心的是,当我这样运行它时是否有意义:

Class Update() {
    ExecutorService svc = Executors.newSingleThreadExecutor();

    svc.execute(new Runnable() {
        public void run() {
            if(!theListeners.isEmpty()) {
                for(IgpsdListener l : theListeners) {
                    l.update(jsonObject);
                }   
            }
        }
    });

我听说,在 JAVA 中创建线程是相当昂贵的操作,所以我想知道我是否正确使用它。我的意思是,它每次都会创建一个新的 Runnable 对象,对吧?甚至 Executor 也只使用唯一的线程。

预先感谢您的帮助和启发。 尼里基

最佳答案

这正是你应该做的。 Java 在创建像这样的一次性对象方面相当快;线程可能很昂贵,但像这里一样创建一个 Runnable 很便宜。

关于java - 使用 ExecutorService 最有效的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9456816/

相关文章:

java - Java集合中迭代器的游标实现

multithreading - 如何在 groovy 中使用多线程访问 1000 个端点?

java - Executor/Queue 仅处理最后一个已知任务

java - Jetty Java EE Executors服务

java - 使用 Apache HTTPClient 时无法释放连接

java - 去掉 toString 中的某些逗号等

java - 使用java创建重复的幻灯片放映

java - 在java小程序中检查我们是否有打印权限而不提示用户

java - 如果调用 ScheduleWithFixedDelay 方法的次数超过池大小,ScheduledExecutorService 如何工作?

java - Intel i7 vs i5 使用 java 多线程