Tôi có một chuỗi, A
có danh sách. Danh sách chứa một số đối tượng. Bây giờ tôi muốn thiết kế một mechanisim mà tôi có thể gửi một số tin nhắn đến chủ đề A
.Giao tiếp giữa hai chủ đề
Thread A
chạy trong vòng lặp (không chờ hoặc ngủ). Một số chủ đề khác, B
, gửi một số tin nhắn đến chủ đề A
và luồng A
làm trống tất cả các hàng đợi của nó.
Làm cách nào để gửi thư giữa các chuỗi?
class A extends Thread {
List<Object> objs = something; //Init it
void run() {
while(true) {
//Body which works on objects.
//After receiving an external message, "A" should perform some action, for example, empty objects.
}
}
}
EDIT: Tôi có thể làm như thế này không?
class A extends Thread {
List<Object> objs = something; //Init it
Boolean flag = false;
public void setFlag(boolean value) {
synchronized(flag) {
this.flag = value;
}
}
public void getFlag() {
synchronized(flag) {
return this.flag;
}
}
void run() {
while(true) {
//Body which works on objects.
//After receiving an external message, A should perform some action, for example, empty objects.
if (getFlag == true)
//Empty list
}
}
}
Trong Java, bạn thường không gửi thư giữa các chuỗi, nhưng bạn sử dụng đối tượng được đồng bộ hóa để chuyển giá trị giữa các chuỗi. – toto2
Tôi đã đồng bộ hóa các biến mẫu như đã được tính toán trong bản chỉnh sửa mới của tôi, nó có hoạt động không? – akshay
@akshay Bạn sửa đổi có vẻ OK (ngoại trừ bạn có nghĩa là 'if (getFlag() == true)'). Hàng đợi – toto2