Ruby Language Semantica del thread di base


Esempio

Un nuovo thread separato dall'esecuzione del thread principale può essere creato utilizzando Thread.new .

thr = Thread.new {
  sleep 1 # 1 second sleep of sub thread
  puts "Whats the big deal"
}

Questo avvierà automaticamente l'esecuzione del nuovo thread.

Per bloccare l'esecuzione del thread principale, fino a quando il nuovo thread si arresta, usa join :

thr.join #=> ... "Whats the big deal"

Si noti che il thread potrebbe aver già finito quando si chiama join, nel qual caso l'esecuzione continuerà normalmente. Se un sottoprocesso non viene mai unito e il thread principale viene completato, il sottoprocesso non eseguirà alcun codice rimanente.