Я работаю над сравнением для нескольких разных методов реализации (реального или поддельного) многопоточности в JavaScript. Насколько я знаю, только веб-работники и Google Gears WorkerPool могут дать вам реальные потоки (то есть, распределить по нескольким процессорам с реальным параллельным исполнением). Я нашел следующие методы:
-
переключаться между задачами с помощью
yield()
-
использовать
setInterval()
(или другую неблокирующую функцию) с потоками, ожидающими одного для другого -
использовать потоки Google Gears WorkerPool (с плагином)
-
использовать html5 веб-работников
Я прочитал связанные вопросы и нашел несколько вариантов вышеупомянутых методов, но большинство из этих вопросов старые, поэтому может появиться несколько новых идей.
Мне интересно - как еще вы можете добиться многопоточности в JavaScript? Любые другие важные методы?
ОБНОВЛЕНИЕ: Как указано в комментариях, я действительно имел в виду concurrency.
ОБНОВЛЕНИЕ 2: Я нашел информацию о том, что Silverlight + JScript поддерживает многопоточность, но я не могу проверить это.
ОБНОВЛЕНИЕ 3: Google устарел Gears: http://code.google.com/apis/gears/api_workerpool.html