
Witaj Amigo!
Zacznijmy dokładnie zajmować się wątkami.
Aby żaden wątek nie mógł się zatrzymać i przerwać wszystkich wątków z rzędu, wprowadzono pojęcie „grupy wątków”. Wątek może wpływać tylko na inne wątki, które znajdują się w tej samej grupie co on. ThreadGroup to klasa, która zarządza grupami wątków. Takie podejście pozwala zabezpieczyć wątki przed niepożądanymi zmianami.
Czasami trzeba wykonać kod, któremu nie można w 100% zaufać. Dlatego wygodnie jest umieścić wszystkie jego wątki w osobnej grupie i zabronić im ingerowania w pracę głównej grupy wątków.
Grupa wątków może zawierać inne grupy. Pozwala to na zorganizowanie wszystkich wątków i grup w hierarchiczne drzewo. W takim drzewie każda grupa wątków, z wyjątkiem początkowej, ma swoją własną grupę nadrzędną.
Klasa ThreadGroup posiada metody, które pozwalają uzyskać listę wszystkich jej wątków, a także wpływać na nie/zmieniać je. Kiedy tworzymy nowy wątek i nie określamy jawnie grupy, dołącza on do tej samej grupy, co wątek twórcy.
Oto kilka metod klasy ThreadGroup:
metoda | Opis |
---|---|
|
Zwraca nazwę grupy |
|
Zwraca grupę nadrzędną |
|
Kończy wszystkie wątki w grupie. |
|
Sprawdza, czy grupa jest demonem |
|
Ustawia właściwość demona grupy |
|
Zwraca liczbę aktywnych wątków w grupie i jej podgrupach |
|
Zwraca liczbę aktywnych grup w grupie i jej podgrupach |
|
Umieszcza wszystkie aktywne wątki w tablicy i zwraca ich liczbę. |
|
Zwraca maksymalny priorytet wątków w grupie. |
|
Umożliwia ustawienie maksymalnego priorytetu wątków w grupie i podgrupach. |
GO TO FULL VERSION