Ребята, я недавно начал программирование с Java в случае потоков Linux, я знаю, что ядро планирует их (поскольку они являются единичными объектами, которые запланированы), но java-программы запускаются на JVM, которые в моей системе (RHEL 6.1) реализуется как программа, которая запускается как экземпляр пользовательского пространства. Таким образом, если ядро не знает о потоках java, то почему в JVM реализована превентивная многозадачность? это будет полезно, если весь механизм взаимодействия виртуальной машины Java и ядра при этом это дело дается .plz процитировать возможные источники информацииКак запланированы потоки Java?
ответ
Read Distinguish Java threads and OS threads? Как я уже сказал в комментарии Java нитей обычные потоки ОС просто работает JVM код
да, я получаю это, но plz расскажу, как интерпретация кода Java с помощью JVM-интерпретатора выполняется в этой многопоточной среде. – Tanay
За исключением операций синхронизации каждая нить интерпретирует Java-код независимо как если это была единственная нить. Когда создается новый поток, ему сообщается, какой код Java интерпретировать. –
jvm - это обычный процесс, который начинается с одного потока и может порождать столько потоков, которые ему нравятся впоследствии. Планирование выполняется на двух уровнях - между процессами и между потоками внутри процессов. Все это делается ОС (через libs) - jvm просто зацепится. Google posix threads для получения более подробной информации - это то, что выставлено (API) для jvm.
Это идет немного в деталь: http://www.ibm.com/developerworks/java/library/j-rtj3/
Темы на картах Java/процесс JVM на родной поток, и вы можете видеть, как идентификатор Java нить и нативный идентификатор потока в следовом дампе стеки. Получить стек нити всех потоков ява используя ваш любимый инструмент:
- командный сигнал линии, как Ctrl + Break (Windows) или Ctrl + \ Linux) в консоли, где программа, запущенная
- инструмент командной строки (убить -QUIT или jstack из JDK)
- визуального VM в JDK и/или JMX и т.д.
Пример экстракт из первой строки такой нити дампа: ... TID = 0x0000002adaba9c00 NID = 0x754c ...
TID = ява идентификатор потока
нидь = родной идентификатор (ОС идентификатор потока)
Использование инструментов операционной системы, чтобы узнать больше о потоке с использованием нативного идентификатора (его находится в гексагоне).
Внутри кода Java у вас есть ThreadMXBean, чтобы получить более подробную информацию о нити программно, если вы хотите http://docs.oracle.com/javase/6/docs/api/java/lang/management/ThreadMXBean.html
«, но программы Java запускаются на JVM, которая в моей системе (RHEL 6.1) реализован в виде программы который запускается в качестве пользовательского пространства instance.So, без ядра осознавая ява нитей ...»
Это утверждение неверно для всех современных JVM-х, которые используют собственные потоки. Я думаю, что это было по умолчанию с Java 1.2. Реализация Native Thread от JVM означает, что каждый раз, когда поток создает/запускает поток в Java-коде, JVM просит ОС создать поток. Поскольку они являются родными потоками, ядро знает о них и обрабатывает их соответственно.Кроме того, Linux поддерживает/реализует потоки POSIX, и как таковой в системах на базе Linux вы получите поведение pthread для потоков ваших приложений Java.
- 1. Как запланировать Java-потоки
- 2. Cronjob быть запланированы
- 3. Java-потоки: как потоки возвращают значения
- 4. Как определить, какие команды запланированы на «at»?
- 5. Как остановить потоки Java-программы?
- 6. Как объединить потоки в Java?
- 7. Как профилировать потоки в Java?
- 8. Как остановить потоки в Java
- 9. Как синхронизировать потоки в java
- 10. Как потоки выполняются в Java
- 11. C++ 11 проблемы многопоточности с Android, где некоторые потоки не запланированы должным образом
- 12. Java-байты-потоки и потоки символы
- 13. Потребительские потоки Java-производителей
- 14. Java - прерывающие потоки?
- 15. Java-сокеты и потоки
- 16. Java Потоки и System.in
- 17. Параллельные потоки в Java
- 18. Последовательные потоки в Java
- 19. Java-потоки список объектов
- 20. Объединить потоки в java
- 21. Почему нужны Java-потоки?
- 22. Легкие потоки в Java?
- 23. Многострочные потоки в Java
- 24. Соединение два Java потоки
- 25. Безопасные потоки в java
- 26. Потоки в java
- 27. Потоки, буфер на Java
- 28. Java-итераторы и потоки
- 29. Java-потоки для отображения
- 30. Java-потоки с EOFException
Не уверен, но каждый поток Java обрабатывается выделенным потоком ОС. Таким образом, ваша ОС не должна знать JVM и т. Д. –