Disons que vous avez plusieurs agents (chacun d'entre eux est son propre processus) qui peuvent communiquer entre eux (les agents communiquent uniquement par paires); Comment vous assurez-vous qu'une fois que deux agents commencent à communiquer, aucun autre agent ne peut les interrompre?Problème d'agent multiple
est ici la partie importante du code:
class Agent {
private void send(int to, byte[] message) {...};
private void receive(int from, byte[] message) {...};
}
La méthode d'envoi envoie le message à l'agent spécifié et recevoir méthode traite le message reçu, qui provient d'autres agents. Disons donc que les agents avec id = 1 et id = 2 échangent quelques messages: comment puis-je m'assurer qu'aucun des agents ne traite (dans sa méthode de réception) les messages d'un autre agent pendant leur échange? J'ai essayé de filtrer les messages en fonction de l'identifiant de l'agent (en les stockant dans une variable int) mais cela ne semble pas fonctionner correctement?
Processus propre ou propre fil? Lisez [this] (http://download.oracle.com/javase/tutorial/essential/concurrency/procthread.html) si vous n'êtes pas sûr. – Ishtar
@Ishtar: bon point, j'ai supposé des threads dans ma réponse ... –
Alors @ark, sont les processus d'agent multithread ou pas? –