Это не так много, что модель актера заменит нити; на уровне процессора процессы будут иметь несколько потоков, которые запланированы и выполняются на ядрах процессора. Идея актеров состоит в том, чтобы заменить эту основную сложность моделью, которая, как утверждают ее сторонники, облегчает программистам написание надежного кода.
Идея действующих лиц заключается в том, чтобы иметь отдельные потоки управления (процессы на языке Erlang), которые взаимодействуют исключительно посредством передачи сообщений. Более традиционной моделью программирования будет разделение памяти и координация связи между потоками с использованием мьютексов. Это все еще происходит под поверхностью в актерской модели, но детали отвлекаются, и программисту предоставляются надежные примитивы на основе передачи сообщений.
Одним из важных моментов является то, что актеры не обязательно отображают 1-1 на потоки - в случае с Erlang они точно не делают - обычно на один поток ядра будет приходиться много процессов Erlang. Таким образом, должен существовать планировщик, который назначает акторы потокам, и эта деталь также удалена от программиста приложения.
Если вас интересует модель актера, вы можете посмотреть, как она работает в Erlang или Scala .
Если вас интересуют другие типы новых возможностей параллелизма, вы можете обратиться к программной транзакционной памяти , другому подходу, который можно найти в clojure и haskell.
Следует упомянуть, что многие из более агрессивных попыток создания продвинутых моделей параллелизма, похоже, происходят на функциональных языках. Возможно, из-за убеждения (я сам выпиваю часть этой помощи), что неизменность делает параллелизм намного проще.