Родные против прототоков, что проще? - PullRequest
2 голосов
/ 31 января 2009

Я только что наткнулся на Protothreads. Кажется, они превосходят собственные потоки, поскольку переключение контекста является явным.

Мой вопрос Делает ли это многопоточное программирование легкой задачей?

(мне так кажется. Но я что-то пропустил?)

1 Ответ

5 голосов
/ 31 января 2009

Они не "превосходят" - они просто разные и подходят для другой цели. Протопотоки моделируются и, следовательно, не являются реальными нитями. Они не будут работать на нескольких ядрах, и все они будут блокироваться при одном системном вызове (сокет recv () и тому подобное). Следовательно, вы не должны рассматривать его как «серебряную пулю», которая решает все проблемы многопоточности. Такие потоки уже давно существуют для Java, Ruby и Python.

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

Также читайте зеленые темы .

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