【发布时间】:2018-03-13 18:21:16
【问题描述】:
我有一个程序,我在其中使用由 ExecutorService 控制的多个任务。我实际上使用了 Runnable,现在将其更改为任务,但是我似乎做错了什么,因为我的任务中应该发生的一切没有发生。我应该提一下,程序没有完成,它会无限运行。谁能告诉我我错过了什么?
public class Test{
ExecutorService exec;
public Test (){
exec = Executors.newCachedThreadPool();
run();
}
public static void main(String[] args) {
Test test = new Test();
}
private void run() {
System.out.println("This works normal");
Task<Void> task = new Task<Void>() {
@Override
protected Void call(){
System.out.println("Here nothing happens already");
for (int i = 0; i < 10; i++)
exec.submit(() -> { System.out.println("Offcourse no sub-task works either"); });
return null;
}
};
exec.submit(task);
}
}
这些是我的导入:
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javafx.concurrent.Task;
我使用:
- Netbeans IDE 8.2
- Java
- Windows 10 专业版
【问题讨论】:
-
现在请解释你为什么使用
Task。
标签: java multithreading javafx task executorservice