Zaimplementowałem subskrypcję w mojej aplikacji Java. Kiedy nowy abonent dodał, aplikacja tworzy nowe zadanie (klasa, która implementuje Runnable
być uruchamiane w osobnym wątku) i jest dodawana do ExecutorService
jak:Zatrzymaj Runnable przesłane do ExecutorService
public void Subscribe()
{
es_.execute(new Subscriber(this, queueName, handler));
}
//...
private ExecutorService es_;
Aplikacja może zarejestrować dowolną liczbę abonentów, jak chcesz. Teraz chcę zaimplementować coś w rodzaju Unsubscribe
, aby każdy subskrybent miał możliwość zatrzymania przepływu komunikatów. Tutaj potrzebuję sposobu, aby zatrzymać jedno z zadań działających w ExecutorService
. Ale nie wiem, jak to zrobić.
Thei jego odmiany nie są dla mnie: kończą wszystkie zadania, chcę tylko zakończyć jedno z nich. Szukam rozwiązania. Tak proste, jak to możliwe. Dzięki.
byłoby pomocne, jeśli edytujesz swoją odpowiedź, aby dodać prosty przykład. Mogę znaleźć wszystkie rzeczy w dokumentacji i google, ale odpowiedzi nie są dla mnie tylko dla innych. To może zaoszczędzić trochę (nieoceniony) czas. – maverik
Oto, prosty przykład: –
Dzięki. To jest naprawdę pomocne. – maverik