我有一个线程A,它有一个列表。列表中保存了一些对象。现在我想设计一个机制,通过这个机制我可以向线程A发送一些消息。
线程A在一个循环中运行(它不等待或休眠)。 另一个线程B向线程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
}
}
}
if (getFlag() == true)
)。 - toto2if (getFlag())
。使用flag == true
或flag == false
来测试布尔值是不好的风格,而且会导致if (flag = true)
错误的发生。 - undefined