Avatar
0
dungtv Explainer
dungtv Explainer
Tại sao thứ tự lúc chạy và thứ tự trong list future lại khác nhau?
Chào mọi người, em đang tập sử dụng executor. Em cấp 5 thread chạy 1 lúc. Tại sao thứ tự lúc chạy và thứ tự trong list future lại khác nhau và làm thế nào để thứ tự trong list future giống với thứ tự lúc chạy ạ. <p> </p> <pre> System.out.println("bat dau chay" + Calendar.getInstance()); Callable callable1 = new Callable() { @Override public String call() throws Exception { System.out.println("task 1"); return "task --1"; } }; Callable callable2 = new Callable() { @Override public String call() throws Exception { System.out.println("task 2"); return "task --2"; } }; Callable callable3 = new Callable() { @Override public String call() throws Exception { System.out.println("task 3"); return "task --3"; } }; List&lt;Callable&gt; callables = new ArrayList(); callables.add(callable1); callables.add(callable2); callables.add(callable3); callables.add(callable1); callables.add(callable2); callables.add(callable3); callables.add(callable1); callables.add(callable2); callables.add(callable3); ExecutorService executorService = Executors.newFixedThreadPool(5); List&lt;Future&gt; futures = executorService.invokeAll(callables); for (Future f : futures) { System.out.println(f.get()); } System.out.println("ket thuc" + Calendar.getInstance()); executorService.shutdown(); </pre> <p> </p> <img src="https://stackask.com/wp-content/uploads/2021/08/future_khong_dung_thu_tue.jpeg" alt="" class="alignnone size-full wp-image-837" />
Answer