Что такое передача сообщений на Java? Если бы вы могли, просьба привести пример.Что такое передача сообщений?
ответ
Передача сообщений В Java
Когда поток отправляет сообщение (объект) к другому потоку.
Используется для связи потоков и синхронизации в средах, где потоки не имеют разделяемой памяти. Следовательно, потоки не могут использовать семафоры или мониторы и не могут использовать общие переменные для связи. Передача сообщений все равно может использоваться, конечно, на платформе с общей памятью.
Сообщения отправляются по каналу с операцией, такой как передача (канал, сообщение) и принимаются от канала с операцией, такой как прием (канал, сообщение). Сообщения могут передаваться синхронно, что означает, что отправитель блокирует до тех пор, пока принятый не получит прием и приемник, пока отправитель не отправит. Поскольку отправитель и получатель находятся в определенных известных точках своего кода в известный определенный момент времени, синхронная передача сообщений также называется простым рандеву с односторонним потоком информации от отправителя к получателю. Примером является агент шахматной игры. Агенты могут обрабатывать сообщения синхронно, так как они будут квитирования на протяжении всей игры.
При передаче асинхронного сообщения отправитель не блокирует. Если приемник не ожидает приема сообщения, сообщение ставится в очередь или буферизируется. Приемник по-прежнему блокируется, если нет сообщения в очереди или буферизации при выполнении приема.
Это действительно помогло. Благодаря! – ericraio
** 1) ** Для взаимодействия между потоками, когда предпочитаете 'send()'/'receive()' over 'get()'/'put()' для общего объекта? ** 2) ** Вы сказали, что передача сообщений может использоваться на платформе общей памяти, но [ответ] (https://stackoverflow.com/a/1853317/3317808) говорит, что * работники не могут изменять данные друг друга. * – overexchange
Ваш вопрос немного расплывчатый, но, я думаю, вы можете ссылаться на Java Message Service API? Если это так, Wikipedia может рассказать вам обо всем: http://en.wikipedia.org/wiki/Java_Message_Service
Но если вы говорите о более «общем» сообщении, то я предлагаю вам взглянуть на ссылку ewernli, опубликованную!
Да. Я спрашиваю, основываясь на вызовах методов на объекте – Pavalesh
Классическое взаимодействие между двумя потоками: Производитель и потребитель.
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();
}
}
Но все же вы используете буфер для доступа к синхронизации. Насколько отличается это от операций 'get()' и 'put()'? – overexchange
- 1. ServiceBroker - Что такое чувство сообщений?
- 2. Что такое поток сообщений конвейера отправки WCF
- 3. Что такое формат WEBSPHERE сообщений MQ
- 4. Передача сообщений в очереди сообщений
- 5. Что такое оплачиваемая передача данных в Azure?
- 6. Что такое передача входящих/исходящих данных?
- 7. Что такое передача в реальном времени?
- 8. Что такое потоковая передача данных в BigQuery?
- 9. Что такое проверка (это) передача и означает?
- 10. Передача сообщений до шлюза?
- 11. Что такое метод shoutOutCannedMessage?
- 12. Что такое командная шина?
- 13. Передача сообщений между волокнами Quasar
- 14. Если MPI - это интерфейс передачи сообщений, то что такое MPICH?
- 15. Что такое подходящая роль ARIA для списка сообщений?
- 16. Что такое предпочтительный способ включения сообщений об ошибках в C++?
- 17. android - что такое очередность очереди сообщений один раз в android?
- 18. Что такое современное состояние при реализации сети передачи сообщений p2p?
- 19. Что такое правильный способ для обозначения свойств сообщений в i18n?
- 20. Что такое поток сообщений команды + q на Mac
- 21. Что такое схема базы данных Facebook для сообщений вроде?
- 22. Что такое отправитель сообщений о массовых сообщениях приложения
- 23. Что такое хороший способ отладки содержимого и назначения сообщений Windows?
- 24. Что такое стандартный шаблон проверки шаблона сообщений Akka.Net?
- 25. Что такое адрес и порт сервера мгновенных сообщений Facebook?
- 26. Что такое SKPaymentTransactionStateDeferred поток предупреждающих сообщений от Apple?
- 27. Что такое эквивалент насоса сообщений Win32 в Linux?
- 28. Что такое хороший способ отображения текстовых сообщений в JavaFX FXML?
- 29. Что такое платформа текстовых сообщений, используемая Magic startup
- 30. Что такое лимит сообщений в Fiddler или C#
В каком контексте? – Bozho
Передача сообщений может относиться к нескольким различным вещам, начиная от простого вызова метода на объектах, до связи между потоками, до распределенной связи между разными компьютерами - какой тип вас интересует? – TofuBeer
Вы имеете в виду «отправку сообщений» против «метода invocation»? В этом случае ответ http://stackoverflow.com/questions/2852381/calling-a-method-or-sending-a-message-in-objective-c является хорошим. – ewernli