Trong lớp B làm thế nào tôi có thể biết công việc của các chủ đề được hoàn thành? Trong các thuộc tính sau, một số nhân viên đang chạy. Trong lớp B, tôi cần phải biết nếu nhân viên đã làm xong chưa?Làm thế nào tôi có thể biết các công việc chủ đề được thực hiện?
public class A implements InitializingBean{
public void method1(){
...
}
@Override
public void afterPropertiesSet() throws Exception {
System.out.print("test after properties set");
// send threads to executorService
ExecutorService executorService = Executors
.newFixedThreadPool(4);
for (int i = 0; i < 4; i++) {
Worker worker = new Worker();
executorService.submit(worker);
}
}
}
public class Worker implements Callable<Void>{
@Override
public void call(){
...
}
}
public class B{
public void methodB(){
A a = new A();
a.method1();
///Here How can i know the job of the workers are finished?
}
}
Bạn có thể đặt nhật ký hoặc bất kỳ thông báo cảnh báo nào ở cuối chuỗi .... – Cool7
Bạn có thể triển khai giao diện gọi lại mà chuỗi sẽ gọi phương thức, thông báo cho bất kỳ trình nghe nào về hoàn thành công việc. Tương tự như những gì 'Service' làm với các ứng dụng JavaFX. Bạn có thể thực hiện giao diện này trong lớp bạn muốn nghe để hoàn thành và chuỗi sẽ gọi phương thức khi công việc của nó được thực hiện. –
Bạn có thể sử dụng mẫu nghe/gọi lại, theo đó nhiệm vụ chuỗi thông báo cho người nghe đã đăng ký khi nó hoàn thành – ControlAltDel