Каково различие между потоками в Java и собственными потоками?
Потоки Java могут быть реализованы любым способом, который соответствует спецификации. Спецификация не требует конкретной реализации.
Фактически все современные настольные и / или серверные JVM реализуют потоки Java как собственные потоки. Это означает, что существует ровно 1 собственный поток для каждого потока Java и что операционная система выполняет все планирование, как, например, для программы на языке C.
Некоторые старые JVM и, возможно, некоторые JVM для устройств с ограниченными ресурсами могут реализовывать потоки таким образом, чтобы количество используемых собственных потоков было меньше количества запущенных потоков Java (или, возможно, 1). Утверждается, что эти реализации реализуют так называемые «зеленые потоки». В этом случае JVM сама отвечает за переключение и планирование задач, а не за делегирование этой задачи операционной системе.
Это зависит от реализации JVM, конечно, но я думаю, что они одинаковы. То есть, Поток в Java реализуется через собственный поток. Вы можете ожидать/делать с потоками Java все, что вы можете с помощью собственных потоков.