[Ruby] Wątki, startowanie wątków jednocześnie


(matiit) #1

Czy jest możliwe wystartowanie 2 wątków jednocześnie (musi być, po to chyba są wątki..)

Mam tablicę z wątkami i próbuję je startować tak:

tablica.each {|watek| 

watek.join

}

Niestety jest tak, że startuje jeden wątek, skończy swoje działanie, startuje drugi.

Wątki wyświetlają po kolei elementy różnych tablic stringów (na stdout) - może przez to nie chcą się wykonywać na raz?

Kod: http://wklej.org/id/197790/

Myślałem że mogłbyby wątki uruchomić naraz wyswietlaj_str i wyswietlaj_str2, że wyniki by się przeplatały


(Marcin 110) #2
b =[]

b << Thread.new(string){|a|

	wyswietlaj_str(a)

}

b << Thread.new(string2){|a|

	wyswietlaj_str2(a)

}

Podczas tworzenia wątku ewoluowałeś funkcję wyswietlaj_str(string), a jej wynik przekazywałeś jako argument, i dopiero wtedy utworzył się wątek, który nic nie robił. A to, co zrobić miał wątek zrobiło się tuż przed jego utworzeniem.


(matiit) #3

Racja...dziękuję, będę wiedział na przyszłość.