В чем разница между потоками в java и собственных потоках?
Темы в Java
Ответ 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, но это зависит от области вашего кода.