Szukałem przykładu online pokazującego zegar w rubinie i natrafiłem na poniższy kod. Działa zgodnie z oczekiwaniami, ale czy ma to sens, że ten prosty program wykorzystuje 30 MB pamięci (jak pokazano w Menedżerze zadań Windows) i zbyt dużo procesora?Timer w wykonaniu Ruby
Thanks a lot
def time_block
start_time = Time.now
Thread.new { yield }
Time.now - start_time
end
def repeat_every(seconds)
while true do
time_spent = time_block { yield } # To handle -ve sleep interaval
sleep(seconds - time_spent) if time_spent < seconds
end
end
repeat_every(5) {
}
Nie mogę sobie wyobrazić, jak ten kod sens ... Nici nie są połączone, więc time_spent zawsze będzie 0 i pętla tylko stosy równoległych wątków działających jeśli Ther nakład pracy trwa dłużej niż 5 sekund. – hurikhan77
Dziękuję hurikhan77, czy mogę wskazać mi dokument lub książkę o wątkach, więc nie muszę zadawać głupich pytań;)? – Elsanto
http://ruby-doc.org/docs/ProgrammingRuby/html/tut_threads.html –