Scala: Почему актеры легкие? - PullRequest
11 голосов
/ 13 марта 2010

Что делает актеров такими легкими?

Я даже не уверен, как они работают. Разве они не отдельные темы?

Ответы [ 2 ]

17 голосов
/ 13 марта 2010

Когда они говорят, что они легкие, они означают, что каждый актер не сопоставлен с одной нитью.

JVM предлагает потоки с общей памятью с замки как основная форма абстракции параллелизма. Но поделился потоки памяти довольно тяжелые и понести серьезные штрафы за производительность от издержек переключения контекста. За реализация актера на основе сопоставление один-к-одному с потоками JVM, полезная нагрузка процесса на актера Scala не будет настолько легким, что мы можем породить миллион экземпляров актера для конкретного расчета. следовательно Актеры Scala были разработаны как легкие объекты событий, которые получают запланировано и выполнено на базовый пул рабочих потоков, который автоматически изменяет размер, когда все блок потоков на долго работает операции. На самом деле, Scala реализует единая модель актеров - нить на основе событий. Скала актеры предложить две формы подвески механизмы - полный стек подвеска (реализована как прием) и приостановка, основанная на продолжении закрытие (реализовано как реакция). В случай событийных актеров, ожидание на реакция представлена ​​продолжением закрытие, то есть закрытие, которое захватывает остальная часть вычисления актера. Когда временно отстраненный актер получает сообщение, которое соответствует одному из шаблоны, указанные в актере, продолжение выполняется по расписанию задание одному из рабочих потоков из основного пула потоков. paper"Актеры, которые объединяют нити и События »Халлера и Одерского обсуждает детали осуществление.

Источник

0 голосов
/ 13 сентября 2013

Важные ссылки Актеры, объединяющие потоки и события

Я не думаю, что мы должны укреплять этого актера в том, что легкий .

Во-первых, акторы, основанные на потоках, являются актерами на поток, поэтому совсем не легки.

актеры, основанные на событиях, - это та точка, с которой мы начинаем чувствовать, что актеры легки. это легкий вес, потому что он не имеет рабочего потока, ожидающего и переключенного на другой, рабочий поток просто переключается с части работы с данными на другую часть работы с данными, таким образом продолжая крутиться на эффективных вычислениях.

...