Содержание

В многопоточном программировании Java иногда может потребоваться установить Thread priority для того, чтобы выполнить перед другим потоком. Вы можете установить и получить приоритет потока программно, используя поток. setPriority(5) и нить. getPriority() методы.
Вот некоторые основные сведения о приоритете потоков в Java:
- Каков приоритет потока по умолчанию? Это 5
- Что такое
MAX_PRIORITYчисло? Сейчас 10 - Что такое
MIN_PRIORITYЧИСЛО? Это 1.
Давайте начнем с нашего урока:
- Мы собираемся создать класс CrunchifyJavaThreadPriority.java.
- Далее мы создадим два дочерних потока и распечатаем их приоритет. Результат будет 5.
- Далее мы установим приоритет на другое число и напечатаем то же самое.
- Следующая задача — распечатать приоритет основного потока () , распечатать его, снова изменить и распечатать.
- В следующем разделе мы рассмотрим все другие операции с потоками.
- isAlive () , isDaemon () , getStackTrace (), isInterrupted () и т. д.
Пожалуйста, посмотрите на все комментарии в программе для более подробного объяснения.

CrunchifyJavaThreadPriority.java
|
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 ( ) : ложный
|
Я надеюсь, что вы получите подробную информацию о том, как установить и получить приоритет темы. Кроме того, сообщите нам, если вы обнаружите какие-либо проблемы в многопоточном программировании, поточно-ориентированном одноэлементном классе и т. Д.
0.00 (0%) 0 votes


