Mam LockManager, który zarządza blokadami kilku wątków. Czasami nici są złymi chłopcami i muszę je zabić i poprosić LockManagera o zwolnienie wszystkich zamków. Jednakże, ponieważ używam ReentrantLock w java jest to niemożliwe, nie mogę odblokować blokady posiadanej przez inny wątek.Blokada odblokowująca należąca do innego wątku java
Jestem zmuszony korzystać z Zamków (nie można używać semaforów, jest to punkt pracy domowej). Czy istnieje implementacja Java Lock, która pozwala mi odblokować blokady będące własnością innych wątków?
Dotychczas opcji I uważane są:
- ponownego wdrażania ReentrantLock w sposób, który pozwala mi na to
- Dodać jakieś mapowanie między semafory i ReentrantLocks
Extra zrobić Źródła, które mogą Ci się przydać:
- Reentrant locks - Unlocking from another thread
- Unlocking a lock from a thread which doesn't own it, or redesigning to avoid this?
Tak, mogę używać mój własny zamek i dziękuję! Mój partner i ja faktycznie zaimplementowaliśmy naszą własną wersję symulującą interfejs LOCK za pomocą semaforów –
Nie widzę jak ta implementacja wa wątki kes, które czekają na poprzednią blokadę ... –
@GerardoLastra - * Niestety nadal nie radzi sobie z blokadami, które pozostały zwisające, ale teraz staje się problemem kogoś innego. * – OldCurmudgeon