2013-01-16 10 views

Odpowiedz

18

samo jak to ma miejsce w Java - powoduje, że nić nazwiejoin blokowanie do gwintu przedstawionego przedmiotu Thread w którym join został nazwany został zakończony.

Możesz zobaczyć różnicę, jeśli główny wątek zrobi coś innego (np. println) po utworzeniu nowego wątku.

def thread = Thread.start { 
    sleep(2000) 
    println "new thread" 
} 
//thread.join() 
println "old thread" 

Bez join to println może się zdarzyć, gdy inny wątek jest nadal działa, więc dostaniesz old thread, a następnie przez dwie sekundy później new thread. Z numerem join główny wątek musi poczekać, aż drugi wątek się zakończy, więc nic nie dostaniesz przez dwie sekundy, a następnie new thread, a następnie old thread.

+0

A więc program nic nie zrobi, dopóki "wątek" nie zostanie zakończony? – user1170330

+0

@ user1170330 Dodałem trochę więcej przykładu. –

+0

Dziękuję bardzo! – user1170330