Quel est le message passant en Java? Si vous le pouvez, donnez un exemple.Qu'est-ce que le passage de message?
Répondre
Message Passing En Java
Lorsqu'un thread envoie un message (un objet) à un autre thread.
Utilisé pour la communication de thread et la synchronisation dans des environnements où les threads n'ont pas de mémoire partagée Les threads ne peuvent donc pas partager des sémaphores ou des moniteurs et ne peuvent pas utiliser de variables partagées pour communiquer. Le passage de message peut toujours être utilisé, bien sûr, dans une plate-forme de mémoire partagée.
Les messages sont envoyés via un canal avec une opération comme envoi (canal, message) et reçus d'un canal avec une opération comme réception (canal, message). Les messages peuvent être transmis de manière synchrone, ce qui signifie que l'expéditeur se bloque jusqu'à ce que le destinataire reçoive une réception et que le destinataire se bloque jusqu'à ce que l'expéditeur effectue un envoi. Puisque l'expéditeur et le destinataire sont à des points connus spécifiques dans leur code à un instant spécifique connu, le passage de message synchrone est également appelé un simple rendez-vous avec un flux d'informations unidirectionnel de l'expéditeur vers le destinataire. Un exemple est un agent de jeu d'échecs. Les agents peuvent traiter les messages de manière synchrone, puisqu'ils seront en train de se passer une poignée de main tout au long de la partie.
Lors du passage de message asynchrone, l'expéditeur ne bloque pas. S'il n'y a pas de récepteur en attente de réception du message, le message est mis en file d'attente ou tamponné. Le récepteur bloque toujours s'il n'y a pas de message mis en file d'attente ou tamponné lorsqu'une réception est exécutée.
Cela a vraiment aidé. Merci! – ericraio
** 1) ** Pour l'interaction entre les threads, Quand préférer 'send()'/'receive()' sur 'get()'/'put()' sur un objet partagé? ** 2) ** Vous avez dit que le passage de message peut être utilisé dans la plate-forme de mémoire partagée, mais [répondre] (https://stackoverflow.com/a/1853317/3317808) dit, * les travailleurs ne peuvent pas modifier les données de l'autre. * – overexchange
Votre question est un peu vague, mais je suppose que vous faites peut-être référence à l'API Java Message Service? Si oui, Wikipedia peut tout vous dire à ce sujet: http://en.wikipedia.org/wiki/Java_Message_Service
Mais si vous parlez de plus de "générique" de passage de messages, alors je vous suggère de jeter un oeil sur le lien ewernli posté!
Oui. Je demande en fonction des méthodes d'appel sur l'objet – Pavalesh
Interaction classique entre deux threads: un producteur et un consommateur.
import java.util.Vector;
class Producer extends Thread {
static final int MAXQUEUE = 5;
private Vector messages = new Vector();
public void run() {
try {
while (true) {
putMessage();
sleep(1000);
}
}
catch(InterruptedException e) { }
}
private synchronized void putMessage()
throws InterruptedException {
while (messages.size() == MAXQUEUE)
wait();
messages.addElement(new java.util.Date().toString());
notify();
}
// Called by Consumer
public synchronized String getMessage()
throws InterruptedException {
notify();
while (messages.size() == 0)
wait();
String message = (String)messages.firstElement();
messages.removeElement(message);
return message;
}
}
class Consumer extends Thread {
Producer producer;
Consumer(Producer p) {
producer = p;
}
public void run() {
try {
while (true) {
String message = producer.getMessage();
System.out.println("Got message: " + message);
sleep(2000);
}
}
catch(InterruptedException e) { }
}
public static void main(String args[]) {
Producer producer = new Producer();
producer.start();
new Consumer(producer).start();
}
}
vous partagez toujours un tampon pour accéder à la synchronisation. En quoi cela diffère-t-il de l'opération 'get()' et 'put()'? – overexchange
- 1. C++ passage de message de type exception
- 2. comment simuler des sémaphores avec le passage de message ...?
- 3. Que signifie le message de conservation?
- 4. Les threads winapi prennent le temps de s'initialiser avant le passage du message?
- 5. Passage de BeginInvoke en tant que paramètre
- 6. Passage d'un message au client sans utiliser FAULT CONTRACT
- 7. tableau rapide que le passage des arguments dans Matlab
- 8. boîte de message n'affiche le message
- 9. Que signifie le passage d'un nom de classe en tant que paramètre dans une fonction?
- 10. Que signifie ce message d'erreur?
- 11. Que signifie ce message checkstyle?
- 12. Que signifie ce message d'avertissement?
- 13. passage condition booléenne en tant que paramètre
- 14. Attribut de tableau de passage Javascript en tant que paramètre
- 15. Le passage d'une classe ** comme argument
- 16. imap - comment valider que le message complet a été transféré?
- 17. log4net - un filtre pour ne consigner que le Nième message?
- 18. Attendez que le message soit envoyé à window.onbeforeunload?
- 19. Est-ce que SOAPUI a le concept d'un message inattendu?
- 20. Modèles de conception de message
- 21. carte de passage haskell dans le paramètre
- 22. Passage d'objets/références en tant que paramètres de fonction
- 23. le passage de paramètres avec EventListener
- 24. Passage de tableaux en tant que paramètres dans VB6
- 25. C# Message file d'attente pendant que .wav est en cours de lecture
- 26. C++, syntaxe pour le passage de paramètres
- 27. le passage de paramètre multiple PHP Javascript
- 28. Le passage par le code est lent
- 29. Le passage d'un pointeur de fonction en tant que paramètre de modèle
- 30. Passage de message d'extension Chrome, lorsque l'appel xhr échoue dans jQuery
dans quel contexte? – Bozho
Le passage de message peut se rapporter à plusieurs choses différentes, allant de la simple méthode d'appel sur des objets, à la communication entre les threads, à la communication répartie entre différents ordinateurs - de quel type vous interrogez-vous? – TofuBeer
Voulez-vous dire "envoi de message" par opposition à "invocation de méthode"? Dans ce cas, la réponse http://stackoverflow.com/questions/2852381/calling-a-method-or-sending-a-message-in-objective-c est une bonne réponse. – ewernli