Многопользовательская чтения является неизбежным и важным предметом в Java. Ниже мы разработаем изучение многопоточного. Следующий контент-это объяснение многопоточного контента Java, прежде чем «добавление JUC Packages в JDK», которое включает в себя интерфейсы, такие как wait (), уведомление () в классе объекта;
Примечание. Пакет JUC относится к пакету Java.util.concurrent, который выполняется Java Master Doug Lea и добавлена в Java в версии JDK 1.5.
Прежде чем вступить в изучение следующих глав, сначала поймите некоторые связанные концепции многопоточного чтения.
Диаграмма состояния потока
иллюстрировать:
Поток включает в себя следующие 5 состояний.
1. Новое состояние: после создания объекта потока он входит в новое состояние. Например, Thread Think = new Thread ().
2. Runnable: также известный как «исполняемое состояние». После создания объекта потока другие потоки вызывают метод start () объекта, чтобы запустить поток. Например, Thread.Start (). Поток в готовом состоянии может быть запланирован на процессоре в любое время.
3. Запуск состояния (запуск): поток получает разрешения на процессор для выполнения. Следует отметить, что потоки могут входить только в состояние бега только из состояния готового.
4. Заблокированное состояние: заблокированное состояние означает, что поток отдает права на использование процессора по какой -то причине и временно прекращается. Только когда поток не вступит в состояние готового состояния, у нее есть шанс перейти в состояние бега. Есть три типа блокировки:
(01) Ожидание, чтобы заблокировать - позвонив по методу wait () потока, позвольте потоку ждать завершения определенной работы.
(02) Синхронизированное блокирование-нить не может получить синхронизированную блокировку синхронизации (поскольку блокировка занята другими потоками), он введет синхронизированное состояние блокировки.
(03) Другое блокировка-поток введет состояние блокировки, вызывая Sleep () или Join () потока или выпустив запрос ввода/вывода. Когда состояние Sleep () истекло, join () ждал, пока поток заканчивается или истекло, или обработка ввода-вывода была завершена, поток снова въехал в состояние готового состояния.
5. Мертвое состояние: поток завершил выполнение или выход метода run () из -за исключения, а поток заканчивает свой жизненный цикл.
Содержание, связанное с этими 5 состояниями, включает в себя класс объектов, поток и синхронизированные ключевые слова. Мы узнаем это содержимое один за другим в следующих главах.
Объектный класс, определяет функции сна/следа, такие как wait (), notify (), notifyall () и т. Д.
Класс потока определяет некоторые функции работы потока столбца. Например, функция Sleep () Sleep, функция прерывания Enterrupt (), getName () Получить имя потока и т. Д.
Синхронизированный является ключевым словом; Функция синхронизированного состоит в том, чтобы позволить потокам приобретать блокировку синхронизации объекта.
Когда мы введем wait (), уведомление () и другие методы подробно позже, мы проанализируем, почему «wait (), notify () и другие методы должны быть определены в классе объекта, а не в классе потоков».