Домой Учебники по Java и J2EE В Java Как установить и получить приоритет потока? Получить идентификатор потока, количество,...

В Java Как установить и получить приоритет потока? Получить идентификатор потока, количество, класс, StackTrace, ThreadGroup и многое другое

591
0

В многопоточном программировании Java иногда может потребоваться установить Thread priority для того, чтобы выполнить перед другим потоком. Вы можете установить и получить приоритет потока программно, используя поток. setPriority(5) и нить. getPriority() методы.

Вот некоторые основные сведения о приоритете потоков в Java:

  1. Каков приоритет потока по умолчанию? Это 5
  2. Что такое MAX_PRIORITY число? Сейчас 10
  3. Что такое MIN_PRIORITY ЧИСЛО? Это 1.

Давайте начнем с нашего урока:

  • Мы собираемся создать класс CrunchifyJavaThreadPriority.java.
  • Далее мы создадим два дочерних потока и распечатаем их приоритет. Результат будет 5.
  • Далее мы установим приоритет на другое число и напечатаем то же самое.
  • Следующая задача — распечатать приоритет основного потока () , распечатать его, снова изменить и распечатать.
  • В следующем разделе мы рассмотрим все другие операции с потоками.

Пожалуйста, посмотрите на все комментарии в программе для более подробного объяснения.

CrunchifyJavaThreadPriority.java

CrunchifyJavaThreadPriority

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
пакет crunchify. ком . учебник ;
/ **
* @author Crunchify.com
* Программа: Самый простой способ установить и получить приоритет потока. Также получите идентификатор потока, количество, класс, StackTrace, ThreadGroup и многое другое.
* Java версия: 1.0.0
*
* /
общественности учебный класс CrunchifyJavaThreadPriority продолжается Нить {
@ SuppressWarnings ( «статический доступ» )
общественности статический недействительным main ( Строка [ ] аргументы ) {
CrunchifyJavaThreadPriority crunchThread1 знак равно новый CrunchifyJavaThreadPriority ( ) ;
CrunchifyJavaThreadPriority crunchThread2 знак равно новый CrunchifyJavaThreadPriority ( ) ;
println ( приоритет по умолчанию для потока crunchThread1: + crunchThread1 . getPriority ( ) ) ;
println ( приоритет по умолчанию для потока crunchThread2: + crunchThread2 . getPriority ( ) ) ;
// Мы меняем приоритеты для потоков
crunchThread1 . setPriority ( 7 ) ;
crunchThread2 . setPriority ( 9 ) ;
println ( / ncrunchThread1 поток обновил приоритет: + crunchThread1 . getPriority ( ) ) ;
println ( приоритет обновления темы crunchThread2: + crunchThread2 . getPriority ( ) ) ;
println ( / nCurrent Имя потока: + Thread. currentThread ( ) . getName ( ) ) ;
println ( «Приоритет основного потока по умолчанию:» + Thread. currentThread ( ) . getPriority ( ) ) ;
Thread. currentThread ( ) . setPriority ( 2 ) ;
println ( Главный приоритет нового потока: + Thread. currentThread ( ) . getPriority ( ) ) ;
// Создание дочерней нити .. Дочерняя нить получает тот же приоритет, что и родительская нить
CrunchifyJavaThreadPriority crunchChildThread знак равно новый CrunchifyJavaThreadPriority ( ) ;
println ( Приоритет дочерней нити такой же, как у основной нити: + crunchChildThread . getPriority ( ) ) ;
// Дополнительные операции с потоками
println ( / n ================= Давайте работать над всеми операциями с потоками ================= ) ;
// Возвращает идентификатор этой темы.
println ( — getId (): + crunchChildThread . getId ( ) ) ;
// Возвращает оценку количества активных потоков в группе потоков текущего потока и его подгруппах.
println ( — activeCount (): + crunchChildThread . activeCount ( ) ) ;
// Возвращает класс времени выполнения этого объекта.
println ( — getClass (): + crunchChildThread . getClass ( ) ) ;
// Возвращает контекст ClassLoader для этого потока.
println ( — getContextClassLoader (): + crunchChildThread . getContextClassLoader ( ) ) ;
// Возвращает массив элементов трассировки стека, представляющих дамп стека этого потока.
println ( — getStackTrace (): + crunchChildThread . getStackTrace ( ) ) ;
// Возвращает состояние этого потока.
println ( — getState (): + crunchChildThread . getState ( ) ) ;
// Возвращает группу потоков, к которой принадлежит этот поток.
println ( — getThreadGroup (): + crunchChildThread . getThreadGroup ( ) ) ;
// Возвращает карту трассировки стека для всех активных потоков.
println ( — getAllStackTraces (): + crunchChildThread . getAllStackTraces ( ) ) ;
// True, если этот поток жив.
println ( — isAlive (): + crunchChildThread . isAlive ( ) ) ;
// True, если поток является потоком демона
println ( — isDaemon (): + crunchChildThread . isDaemon ( ) ) ;
// Проверяет, был ли прерван этот поток.
println ( — isInterrupted (): + crunchChildThread . isInterrupted ( ) ) ;
}
@ Override
общественности недействительным запустить ( ) {
println ( «Метод внутреннего прогона» ) ;
}
частный статический недействительным println ( String строка ) {
Система. вне. println ( строка ) ;
}
}

Запустите вышеуказанную программу в Eclipse, и вы должны получить результат, аналогичный приведенному ниже:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
crunchThread1 поток по умолчанию приоритет : 5
crunchThread2 поток по умолчанию приоритет : 5
crunchThread1 нить обновленный приоритет : 7
crunchThread2 нить обновленный приоритет : 9
Имя текущей темы : главный
Основной поток по умолчанию приоритет : 5
Основная тема новая приоритет : 2
ребенок приоритет потока такой же как Основная тема : 2
================= Давайте работать над всеми операциями с потоками =================
getId ( ) : 11
activeCount ( ) : 1
getClass ( ) : учебный класс crunchify. ком . учебник . CrunchifyJavaThreadPriority
getContextClassLoader ( ) : солнце. разный Launcher $ AppClassLoader @ 4554617c
getStackTrace ( ) : [ Лява . яз. StackTraceElement ; @ 677327b6
getState ( ) : NEW
getThreadGroup ( ) : Java. яз. ThreadGroup [ name = main , maxpri = 10 ]
getAllStackTraces ( ) : { Thread [ Finalizer , 8 , system ] = [ Ljava . яз. StackTraceElement ; @ 45ee12a7 , Thread [ main , 2 , main ] = [ Ljava . яз. StackTraceElement ; @ 330bedb4 , Тема [ Диспетчер сигналов , 9 , система ] = [ Лява . яз. StackTraceElement ; @ 2503dbd3 , Thread [ Ссылочный обработчик , 10 , система ] = [ Ljava . яз. StackTraceElement ; @ 4b67cf4d }
isAlive ( ) : ложный
isDaemon ( ) : ложный
isInterrupted ( ) : ложный

Я надеюсь, что вы получите подробную информацию о том, как установить и получить приоритет темы. Кроме того, сообщите нам, если вы обнаружите какие-либо проблемы в многопоточном программировании, поточно-ориентированном одноэлементном классе и т. Д.

В Java Как установить и получить приоритет потока? Получить идентификатор потока, количество, класс, StackTrace, ThreadGroup и многое другое

0.00 (0%) 0 votes

ЧИТАТЬ ТАКЖЕ:  Простой способ подсчитать количество элементов XML в Java

ОСТАВЬТЕ ОТВЕТ

Пожалуйста, введите ваш комментарий!
пожалуйста, введите ваше имя здесь