Kontrola pracy wątków

0

Szybkie pytanie dla wprawnych pewnie pikuś. Jak sprawdzić który wątek obecnie wykonuje kod załóżmy każdy wątek to klient i chce wiedzieć który klient coś ode mnie chce. To jedno a drugie jak napisać warunek ifa że jeśli zwróci true to znaczy że dana blokada jest wolna np w blok5.lock(); nic nie siedzi i może z niej skorzystać a jeśli zajęte wyrzuci komunikat i generator wylosuje sobie nowy nr z listy.

0

Dobra jak sprawdzić czy blokada zajęta już wiem metoda isLocked(); dla potomnych jeszcze może ktoś się zlituje i powie mi jak sprawdzić który wątek wykonuje kod?

0
Javka napisał(a):

Dobra jak sprawdzić czy blokada zajęta już wiem metoda isLocked(); dla potomnych jeszcze może ktoś się zlituje i powie mi jak sprawdzić który wątek wykonuje kod?

Thread.currentThread().getId();

0

No niestety przyjacielu ale nie zwraca to indeksu z listy pod jakim jest aktualnie pracujący wątek

1

Klasa ReentrantLock https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantLock.html ma sporo dodatkowych funkcjonalności względem standardowego monitora (niektóre protected, ale chyba można stworzyć własną podklasę i zmienić zasięg widoczności na public).

Wydaje mi się jednak, że robisz coś bardzo koślawego i pakujesz się w kłopoty.

1 użytkowników online, w tym zalogowanych: 0, gości: 1