При поиске в Интернете параллелизма в jvm я нашел вопросы о поиске Неблокирующей библиотеки ввода-вывода для Scala / Java.
В чем проблема?Если я хочу отправить что-то в файл / сокет, я могу запустить отдельный поток, который выполняет задание.
Я знаю, что могут быть проблемы с использованием потоков, основанных на событиях, - потому что вся система может быть заблокирована.Но относится ли это к JVM / Scala?
ДОБАВЛЕНО :Пожалуйста, поправьте меня, если я ошибаюсь:Я думаю, что когда вам нужно вызвать какую-то функцию ввода-вывода асинхронным способом, она должна перейти в отдельный процесс или системный (тяжелый) поток.Я прав?Итак, все вопросы о решении такого рода вопросов на общих языках относятся к созданию и управлению отдельным процессом или потоками.Таким образом, единственным облегчением языка является создание некоторого пула потоков, которые будут назначены операциям ввода-вывода в асинхронном режиме.
Итак, мои гипотезы таковы.Предложение: Язык X лучше, чем Y, потому что вызов асинхронной операции ввода-вывода не блокирует виртуальную машину ложно, потому что в каждом языке, поддерживающем системные потоки, есть возможность управлять NIO, единственное отличие состоит в том, что язык Xимеет лучшую поддержку для этого благодаря встроенным библиотекам / языковым возможностям.
- Является ли эта гипотеза Истиной?
- Может ли какой-либо язык достичь NIO без поддержки системы os?(через процессы / потоки)