Соответствует ли модель «производитель / потребитель» актеру? - PullRequest
7 голосов
/ 09 августа 2011

Итак, в последнее время я читал много статей о том, как параллельное программирование сложно, и как параллельное программирование с общим состоянием практически невозможно.Таким образом, такие языки, как Erlang (я думаю, что этот вопрос включен, если не все еще имеет смысл) используют модель Actor для параллелизма и не имеют общего состояния между потоками.Сейчас, когда я программировал параллельные системы, я не нашел, что параллелизм был настолько сложным, но в целом я могу вписать практически любую проблему в парадигму производителя / потребителя и жить без особого (если вообще) общего состояния.Хотя это правильно?Являются ли очереди сообщений между потоками фактически общим состоянием?Или модель параллельного программирования производитель / потребитель действительно конкретный пример модели Actor (это мой настоящий вопрос).Мысли

1 Ответ

4 голосов
/ 09 августа 2011

Технически общие сообщения представляют состояние всеобъемлющего приложения, но только если производители и потребители сами не имеют состояния (в противном случае они просто представляют состояние (я) среды совместного использования сообщений / а). Модель производитель / потребитель - не столько пример модели актера, сколько каждый отдельный производитель и потребитель. Производители (которые также могут быть потребителями, либо из тех же общих очередей сообщений, либо из внешних источников) делают то, что они делают, и выкладывают какое-то сообщение, которое ставится в очередь. Сама очередь может считаться действующей, хотя и пассивной, поскольку она получает / хранит сообщения и может распространять их (или просто ждать, пока они будут приняты). Потребители являются действующими лицами в том смысле, что они принимают / получают сообщения из общей очереди и работают на основе этих сообщений.

Таким образом, в основном мой ответ заключается в том, что модель производитель / потребитель - это не пример модели Actor, а пример набора актеров, работающих в общей среде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...