Dlaczego wątek nie jest przerwany

Dlaczego wątek nie jest przerwany
CO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

Cześć,

aktualnie przerabiam książkę "Java 9 Concurrency Cookbook - Second Edition" i nie mogę zrozumieć jednej rzeczy.

Tutaj kod

Jak to powinno działać wg mnie:

  1. Wątek główny startuje. Potem startuje on drugi wątek (consoleClock)
  2. Wątek główny zatrzymuje się na 5 sekund
  3. Przez te 5 sekund ciągle leci drugi wątek, który na konsolę coś tam sobie wypisuje.
  4. Po 5 sekundach wątek główny jest wznawiany i zatrzymuje drugi wątek.
  5. Drugi wątek zatrzymuje się, wypisuje, że został zatrzymany "The FileClock has been interrupted." i już nic na ekran nie wypisuje
  6. Wątek główny się kończy

Tymczasem gdy odpalam ten program to 10 razy jest wypisywana data, nie ma żadnego info o przerwaniu wątku, wątek główny nigdy się nie kończy...

Może mi ktoś wytłumaczyć, dlaczego tak się dzieje?

rubaszny_karp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 152
0

nikt Ci nie powie, bo nie pokazałeś kodu. Tu nie ma magii, coś zrobiłeś źle, jakiś wątek który nie jest demonem nie zakończył pracy.

CO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 16
0

Pokazałem przecież kod, jest link załączony.

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384
0
Kopiuj
TimeUnit.SECONDS.sleep(5000);

Robisz sleepa na 5000 sekund, nie 5000 milisekund.

rubaszny_karp
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 152
0

faktycznie, no i wszystko dziala jak powinno.

Sun Jul 22 12:16:28 CEST 2018
The FileClock has been interrupted.
Sun Jul 22 12:16:29 CEST 2018
Sun Jul 22 12:16:30 CEST 2018
Sun Jul 22 12:16:31 CEST 2018
Sun Jul 22 12:16:32 CEST 2018
Sun Jul 22 12:16:33 CEST 2018
Sun Jul 22 12:16:34 CEST 2018
Sun Jul 22 12:16:35 CEST 2018
Sun Jul 22 12:16:36 CEST 2018
Sun Jul 22 12:16:37 CEST 2018
Process finished with exit code 0

i pan wyżej ma racje

Kopiuj
			TimeUnit.SECONDS.sleep(5000);

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2384

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.