01/10/2018, 17:37
Cách truyền dữ liệu giữa các thread?
Chào mọi người, em có một câu hỏi như thế này ạ?
class nhapA implements Runnable {
int a;
public void run(){
a = 0;
try {
while(a == 0){
Scanner sc = new Scanner(System.in);
a = sc.nextInt();
}
}
catch(Exception e) {
System.out.print(e);
}
}
}
class inRaA implements Runnable {
}
Giờ em muốn lấy dữ liệu mình đã nhập vào thread nhapA để in bằng inRaB thì phải viết hàm main làm thế nào ạ… Tất nhiên là nếu như a khác 0 ạ…
Em cảm ơn…
Bài liên quan
Dùng trường (biến) tĩnh toàn cục để lưu
a
.Có thể sử dụng Callable, Future. Cách này thường được sử dụng. Sau khi Thread NhapA thực thi xong thì gởi kết quả trả về sang Thread InRaA.
Hoặc sử dụng CompleteableFuture tronng Java 8 sẽ đơn giản hơn nữa.
Lập trình đa luồng với Callable và Future trong Java - GP Coder (Lập trình Java)
Hướng dẫn lập trình Java, Design Pattern, Spring, JSF, Primefaces, Collection, Multi-thread, Webservice, SQL, Report, Apache POI.
Mình bổ sung thêm cách:
Cho 2 object
nhapA
&inRaA
reference tới 1 object chung qua constructor của 2 class hoặc closure trong Java 8 (Lambda Expression)