【发布时间】:2011-05-10 12:55:58
【问题描述】:
假设您有多个代理(每个代理都是自己的进程),它们可以相互通信(代理只能成对通信);你如何确保一旦两个代理开始通信,没有其他代理可以中断它们?
这是代码的重要部分:
class Agent {
private void send(int to, byte[] message) {...};
private void receive(int from, byte[] message) {...};
}
send 方法将消息发送到指定的代理,receive 方法处理接收到的来自其他代理的消息。因此,假设 id=1 和 id=2 的代理交换一些消息:我如何确保两个代理在交换期间都不会处理(在它的接收方法中)来自任何其他代理的消息?我尝试根据代理的 id 过滤消息(通过将它们存储在 int 变量中),但它似乎无法正常工作?
【问题讨论】:
-
自己的进程还是自己的线程?如果您不确定,请阅读this。
-
@Ishtar:好点,我假设我的回答中有线程......
-
那么@ark,代理进程是否是多线程的?
-
@Ishtar:它们是进程,而不是线程
-
我想我们需要进一步了解send()和receive()的实现才能回答这个问题。
标签: java multithreading