Подтвердить что ты не робот

Темы в Java

В чем разница между потоками в java и собственных потоках?

4b9b3361

Ответ 1

Java-потоки могут быть реализованы любым способом, который соответствует спецификации. Спецификация не требует конкретной реализации.

Эффективно все современные настольные и/или серверные JVM реализуют потоки Java как собственные потоки. Это означает, что для каждого потока Java существует ровно 1 собственный поток и что операционная система выполняет все планирование, как это делает программа C, например.

Некоторые старые JVM и, возможно, некоторые JVM для устройств с ограниченными ресурсами могут реализовывать потоки таким образом, чтобы количество используемых собственных потоков было меньше числа запущенных потоков Java (или, возможно, 1). Говорят, что эти реализации реализуют так называемые "зеленые потоки". В этом случае сам JVM отвечает за переключение задач и планирование, в отличие от делегирования этой задачи операционной системе.

Ответ 2

Конечно, это зависит от реализации JVM, но я думаю, что они одинаковы. Это, поток в Java реализуется через собственный поток. Вы можете ожидать/делать с потоками Java все виды вещей, которые вы можете с помощью собственных потоков.

Ответ 3

Потоки Java и родные потоки совершенно разные. Собственная нить является частью базовой платформы (ОС).

Java-потоки являются одной из особенностей языка Java для поддержки concurrency. Спецификация Java контролирует API и работу потоков Java. В конечном итоге потоки Java будут отображаться в собственные потоки во время выполнения java-программы. Кроме того, потоки java не должны получать один к одному, сопоставленный с собственными потоками.

Ответ 4

Java Threads (класс Thread и Runnable) - это API более высокого уровня, чем собственные потоки в приложениях с общим доступом к памяти. Я рекомендовал эту книгу "Java Threads" Oaks и Wong http://shop.oreilly.com/product/9780596007829.do. Это обычная практика для реализации интерфейса Runnable, но это зависит от области вашего кода.