У меня есть ветка, A
, в которой есть список. Список содержит несколько объектов. Теперь я хочу разработать механизм, с помощью которого я могу отправить сообщение в поток A
.
Поток A
выполняется в цикле (он не ждет и не спит).
Другой поток, B
, отправляет сообщение потоку A
, а поток A
очищает все свои очереди.
Как я могу отправлять сообщения между потоками?
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.
}
}
}
РЕДАКТИРОВАТЬ: Могу я сделать это так?
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
}
}
}