Похоже, я перепутал с потоками Java/Threads и интерпретированными языками.
Прежде чем я начну, я понимаю, что "Зеленые потоки" - это потоки Java, в которых потоковая обработка выполняется JVM, а весь процесс Java работает только как один поток ОС. Таким образом, в многопроцессорной системе это бесполезно.
Теперь мои вопросы. У меня две нитки A и B. Каждая из них содержит 100 тысяч строк независимого кода. Я запускаю эти потоки в своей программе Java в многопроцессорной системе. Каждому потоку будет предоставлен собственный OS-поток для RUN, который может работать на другом процессоре, но поскольку Java интерпретируется, эти потоки потребуют снова и снова взаимодействовать с JVM для преобразования байтового кода в машинные инструкции? Я прав? Если да, чем для небольших программ Java Threads не будет большим преимуществом?
Как только Hotspot компилирует оба эти пути выполнения, оба могут быть такими же хорошими, как родные Threads? Я прав?
[EDIT]: Альтернативный вопрос может быть, предположим, что у вас есть один Java-поток, код которого не скомпилирован JIT, вы создаете этот Thread и запускаете() его? Как взаимодействует OS Thread и JVM для запуска этого Bytecode?
спасибо