November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy zniszczyć wątek przed zakończeniem programu.
Wątek kończy działanie w momencie, kiedy dotrze do końca swojego bloku kodu. Najlepszym sposobem wcześniejszego zniszczenia wątku jest wymuszony skok na koniec jego bloku kodu. Dzięki temu przed zniszczeniem wątek może uruchomić kod porządkujący.
Poniższy wątek wykonuje pętlę w czasie, kiedy zmienna egzemplarza continue ma wartość true. Wystarczy ustawić tę zmienną na false, aby wątek zszedł śmiercią naturalną:
require 'thread' class CounterThread < Thread def initialize @count = 0 @continue = true super do @count += 1 while @continue puts "Zdążyłem policzyć do #{@count} i zostałem brutalnie zatrzymany." end end def stop @continue = false ...Read now
Unlock full access