Core
Сатҳи
Екатеринбург

ThreadGroup

Дар гурӯҳ нашр шудааст
Нимаи хуб ва соли нав муборак! Ба ман кӯмак кунед, ки каме бештар дар бораи чанд ришта, яъне ThreadGroup бифаҳмам. Ман Google-ро ҷустуҷӯ кардам, хондам ва моҳияти асосиро фаҳмидам: ҳадаф амният, идоракунии ҳамгирошуда тавассути ташкor гурӯҳ аст.
Риштаҳо бо сабабҳои идоракунӣ ва амният ба гурӯҳҳои ришта гурӯҳбандӣ карда мешаванд. Як гурӯҳи ришта метавонад ба гурӯҳи дигар тааллуқ дошта, иерархияро бо гурӯҳи асосӣ (система) дар сатҳи боло ташкил диҳад. Риштаҳои ба гурӯҳ тааллуқдоштаро дар як вақт идора кардан мумкин аст - шумо ҳуқуқ доред, ки кори ҳамаи риштаҳоро дар гурӯҳ якбора қатъ кунед ё барои онҳо арзиши ягонаи максималии афзалияти иҷроро муқаррар кунед. Гурӯҳҳои риштаҳо инчунин метавонанд барои муайян кардани доменҳои амниятӣ истифода шаванд. Риштаҳо дар дохor гурӯҳ одатан имкони таъсири мутақобила доранд, ки он ба риштаҳои гурӯҳҳои лона низ паҳн мешавад. Вақте ки мо "таъсир" мегӯем, мо дар назар дорем, ки ҳама гуна даъвати усул метавонад ба рафтори ришта таъсир расонад, масалан, афзалияти онро тағир диҳад ё боиси халалдор шавад.
(манбаъ: Tyts )
Барои он ки як ришта аз оғоз ба қатъ ва қатъ кардани ҳамаи риштаҳои як қатор, мафҳуми гурӯҳ ҷорӣ карда шуд. Ришта метавонад танҳо ба риштаҳое таъсир расонад, ки дар ҳамон гурӯҳ ҳастанд. Гурӯҳи ришта бо синфи ThreadGroup муаррифӣ мешавад. Ин созмон ба шумо имкон медиҳад, ки ҷараёнҳоро аз таъсири номатлуби беруна муҳофизат кунед. Гурӯҳи ришта метавонад гурӯҳҳои дигарро дар бар гирад, ки ба ҳамаи риштаҳо ва гурӯҳҳо имкон медиҳад, ки дар дарахти иерархӣ ташкил карда шаванд, ки дар он ҳар як an objectи ThreadGroup, ба истиснои an objectи реша, волидайн дорад.
(манбаъ: Tyts ) Пас аз хондани мақолаҳои гуногун, ман қарор додам, ки рамзи хурде нависам, ки дар он ман наметавонам ҷараёни гурӯҳи дигарро аз як риштаи як гурӯҳ қатъ кунам. Ва чизе нашуд: он ба ман имкон медиҳад, ки халалдор шавам((( Коди ман: Чаро халал расонидан мумкин аст? Ин аст натиҷа: public class Test { public static ArrayList threads = new ArrayList (); public static ArrayList groups = new ArrayList (); public static void main(String[] args) throws InterruptedException { final ThreadGroup group1 = new ThreadGroup("GROUP 1"); final ThreadGroup group2 = new ThreadGroup("GROUP 2"); final ThreadGroup group3 = new ThreadGroup("GROUP 3"); groups.add(group1); groups.add(group2); groups.add(group3); for (int i = 0; i < groups.size(); i++) { for (int j = 1; j < 5; j++) { Thread thread = new Thread(groups.get(i), "THREAD №" + j) { @Override public void run() { while (!isInterrupted()) { try { Thread.sleep(500); } catch (InterruptedException e) { System.out.println(getName() + " : " + getThreadGroup().getName() + " прервана"); } } } }; threads.add(thread); thread.start(); } } Thread thread = new Thread(group1, "THREAD №5") { @Override public void run() { group2.interrupt(); while (true); } }; thread.start(); threads.add(thread); for (Thread t : threads) System.out.println(t); } } Thread[THREAD №1,5,GROUP 1] Thread[THREAD №2,5,GROUP 1] Thread[THREAD №3,5,GROUP 1] Thread[THREAD №4,5,GROUP 1] Thread[THREAD №1,5,GROUP 2] Thread[THREAD №2,5,GROUP 2] Thread[THREAD №3,5,GROUP 2] Thread[THREAD №4,5,GROUP 2] Thread[THREAD №1,5,GROUP 3] Thread[THREAD №2,5,GROUP 3] Thread[THREAD №3,5,GROUP 3] Thread[THREAD №4,5,GROUP 3] Thread[THREAD №5,5,GROUP 1] THREAD №1 : GROUP 2 прервана THREAD №2 : GROUP 2 прервана THREAD №4 : GROUP 2 прервана THREAD №3 : GROUP 2 прервана
Шарҳҳо
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION