我正在使用带有 newSingleThreadExecutor 的执行程序服务以串行顺序执行我的 Runnable 任务,但是似乎不能保证串行执行顺序,因为有时任务以随机顺序执行。
executorService = Executors.newSingleThreadExecutor();
executorService.submit(MyTask1);
executorService.submit(MyTask2);
MyTask 执行一些异步操作并将结果发送回我正在执行任务的类。
尽管文档说,必须连续执行 newSingleThreadExecutor () 任务,但我无法找出我在这里遗漏的内容。我们将不胜感激。
谢谢
最佳答案
由于执行顺序保证是连续的,您可能没有在实际运行的代码中使用单线程执行器。
作为变通方法,提交一个任务来完成两个事情:
executorService.submit(() -> {MyTask1.run(); MyTask2.run();});
关于java - ExecutorService 以串行顺序执行runnable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53700253/