Когда начинается программа Java, поток работает немедленно. Важность основного потока отражается в двух аспектах:
Хотя основной поток автоматически создается при запуске программы, он может управлять объектом потока. Для этого вы должны позвонить в метод CurrentThread (), чтобы получить ссылку на него, который является публичным статическим членом класса потока. Его обычная форма заключается в следующем:
Статическая потока CurrentThread ()
Этот метод возвращает ссылку на поток, который его называли. После того, как вы получите ссылку на основной поток, вы можете управлять основным потоком, как вы делаете, чтобы управлять другими потоками.
Начнем с рассмотрения следующих примеров:
// Управление основным потоком. потока T.SetName ("My Think"); .println (n);В этой программе ссылка на текущий поток (или основной поток) получается путем вызова currentThread (), которая хранится в локальной переменной t. Затем программа отображает информацию потока. Затем программа вызывает setName (), чтобы изменить внутреннее имя потока. Информация о потоке отображается снова. Затем номер цикла начинает уменьшаться с 5, паузируя в течение одной секунды каждый раз. Пауза выполняется методом Sleep (). Заявление Sleep () явно предусматривает, что время задержки составляет 1 миллисекунд. Обратите внимание на блок Try/поймать за пределами петли.
Метод Sleep () класса потока может повысить исключение прерванного эктри. Эта ситуация произойдет, когда другие нити захотят нарушить спящую нить. Этот пример просто напечатает сообщение, было ли оно прервано. В реальных программах вы должны быть гибкими в решении таких проблем. Ниже приведен результат этой программы:
Текущий поток: Поток [Main, 5, Main] после изменения имени: поток [My Thread, 5, Main] 54321
Обратите внимание, что T используется в качестве выхода, когда параметр используется в операторе println (). Порядок отображения: имя потока, приоритет и имя группы. По умолчанию имя основного потока является главным. Его приоритет - 5, что также является значением по умолчанию, а Main также является названием группы потоков, к которой она принадлежит. Группа потоков - это структура данных, которая управляет состоянием потоков в целом. Этот процесс обрабатывается проприетарной средой выполнения, поэтому я не буду вдаваться в подробности здесь. После того, как имя потока изменилось, t снова выводит. На этот раз отображается новое имя потока.
Давайте изучим методы, определяемые классом потока в программе более тщательно. Метод Sleep () указывает на то, что поток вызван для подвески в соответствии с миллисекундным временем. Его обычная форма заключается в следующем:
Статическое пустое сна (длинные миллиона секунд) броски прерван
Время повесить четко определено как миллисекунд. Этот метод может бросить исключение прерванного эктриэкцепции.
Существует вторая форма метода Sleep (), который показан ниже, который позволяет указать, находится ли время в миллисекундах или наносекундах в качестве циклов.
Статический void Sleep (длинные миллионы секунд, наносекунд Int) бросает прерывания
Вторая форма доступна только в том случае, если в наносекундах разрешен период времени. Как показано в вышеуказанной программе, вы можете использовать SetName () для установки имени потока и использовать getName (), чтобы получить имя потока (этот процесс не отражен в программе). Эти методы являются членами класса Thread и объявляются следующим образом:
final void setName (String ThreadName) final String getName ()
Здесь ThreadName специально относится к имени потока.