CodeGym /Java курс /Модул 2: Java Core /Приоритети на нишките

Приоритети на нишките

Модул 2: Java Core
Ниво , Урок
На разположение
Приоритети на теми - 1

„Нека продължим нашия урок. Какво представляват приоритетите на нишките и защо са необходими?

„При проблеми в реалния свят важността на работата, извършвана от различни нишки, може да варира значително. Концепцията за приоритет на нишката е създадена, за да контролира този процес. Всяка нишка има приоритет, представен с число от 1 до 10.“

„10 е с най-висок приоритет.“

"1 е най-ниският."

„Ако не е даден приоритет, тогава нишката получава приоритет 5 (нормален).“

Приоритетът на нишката не влияе значително на нейната работа, а instead of това е по-скоро препоръка. Ако има няколко спящи нишки, които трябва да се изпълнят, Java машината първо ще стартира нишка с по-висок приоритет.

"Машината на Java управлява нишките, Howто намери за добре. Нишките с нисък приоритет няма да бъдат оставени да не работят. Те просто ще получат по-малко време за изпълнение от другите, но все пак ще бъдат изпълнени."

"В повечето случаи нишките винаги се изпълняват с един и същ приоритет. Опитът да се даде на една нишка повече от другите често е индикация за архитектурни проблеми в програмата."

„Уау. И вече бях мечтал да присвоя най-висок приоритет на моите нишки, така че да правят 10 пъти повече.“

„Оказва се, че ситуацията тук е близо до финализиране: нишка с висок приоритет може и ще работи повече, но може би не – няма гаранция.“

„Кажи, How да променя приоритета на нишка?“

„Много е лесно. Класът Thread има два метода:“

Метод Описание
void setPriority(int newPriority)
Задава нов приоритет
int getPriority()
Връща текущия приоритет на нишката

„Класът Thread също има три константи:“

public final static int MIN_PRIORITY = 1;

public final static int NORM_PRIORITY = 5;

public final static int MAX_PRIORITY = 10;

„Нека позная. MIN_PRIORITY е минималният приоритет, MAX_PRIORITY е максималният, а NORM_PRIORITY е приоритетът по подразбиране?“

"Да, точно така. Можете да напишете codeа, който присвоява най-високия приоритет на нишката."

"Има ли няHowъв трик тук? Нещо подобно?"

Thread thread = new MyThread();
thread.setPriority(Thread. MAX_PRIORITY)
thread.start();

— Точно така. Нищо сложно, нали?

"Да. Можете ли да зададете/промените приоритета след стартиране на нишка? Или е като setDaemon, където трябва да зададете стойността, преди нишката да бъде стартирана?"

"Приоритетът може да бъде променен след стартиране на нишка. Както вече казах, това не води до драматични промени."

„Е, това беше малка, но интересна тема. Благодаря, Ели.“

Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION