Ruby - zastavení vlákna odjinud (doplněk Thread#wakeup/run)
Ahoj, mám triviální dotaz, na který nemohu na internetu najít odpověď.
Můžeš si představit, že programuji v IRB (nebo dokonelšjším PRY), takže tam se příkazy nevykonávají ihned za sebou jako v souboru, ale až je napíšu a odentruju.
Existuje metoda, která zastaví(ne zabije) vybrané vlákno? Vlákno se může zastavit samo sebe voláním Thread.stop, ale to já nechci. Když existuje metoda wakeup, proč není stop?
Prvně napíšu
t=Thread.new { loop do print 1 ;sleep 1}
# nyní bych rád zavolal
t.stop
#což neexistuje, ale toto existujhe
t.wakeup
ked v niecom programujes a pouzivas tam tie objekty ktore niekto vyrobil, tak opuzivas referencnu prirucku ktoru napisal ten kto tie objekty naprogramoval.
Objekt Thread je v tom tvojom cude asi toto Thread.html a v lavom stlpci mas methods.
Ked si to tam pozres tak pochopis ze thread.stop sa robi vnutri threadu, a potom ho mozes zvonku prebudit wakeupom. Nemozes zvonku thread zastavit ak to zastavenie neni naprogramovane v threade. Uz z principu toho co to je thread. Mozes ho zvonku ale zakillovat.
Díky, stačila informace, že thread nejde zastavit zvenku. Je pro to nějaký důvod?