给出一个非常简单的例子:
Class A {
B b = new B();
}
Class B {
//unicorns and what-not
//Something happens and I want to let A know
//Yet I don't want to return and exit
}
有没有什么方法可以让 B 在没有套接字的情况下与 A 通信?通过通信,我的意思是 B 向 A 发送值,而 A 不调用 B 上的方法。
编辑:感谢您的回复。以下是我的后续问题:
如果我有以下情况,并且方法 signal() 被 B 的 2 个实例同时调用,这将导致每个 B 调用操作两次发生冲突。我能做些什么来解决它?
//Modified from Jon Skeet
public class A {
private B b[];
public A() {
//for loop
b[i] = new B(this);
}
public void signal() {
//for loop
b[i].action();
}
}
public class B {
A creator;
public B(A creator) {
this.creator = creator;
}
public void action() {
//stuff
}
public void main(String[] args) {
while(true)
if(something==true) {
creator.signal();
}
}
}