在我的程序中,我编写了一个类,每次触发新值时都会更新一堆监听器。因此,我使用的是 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/