Проблема заключается в поддержке языков и библиотек для многопоточности.
Использование Java ключевого слова synchronized
для установки блокировок на объектах является конструкцией уровня языка.Кроме того, встроенные методы Object
(wait, notify, notifyAll) реализованы непосредственно во время выполнения.
Существует небольшая дискуссия о том, должны ли языки реализовывать потоки через ключевые слова и языковые структуры и основные данные.типы против всех возможностей потоков в библиотеке.
Исследовательская работа, подтверждающая мнение о том, что многопоточность на уровне языка выгодна, является относительно известной http://www.hpl.hp.com/personal/Hans_Boehm/misc_slides/pldi05_threads.pdf.
Теоретически, любой язык, основанный насреда выполнения C может обращаться к библиотеке, такой как pthreads, и любой язык, работающий на JVM, может использовать эти потоки.Короче говоря, все языки, которые могут использовать библиотеку (и имеют понятие указателей функций), действительно могут выполнять многопоточность.