Co robi metoda join
?
Jak w:Łączenie wątku w Groovy
def thread = Thread.start { println "new thread" }
thread.join()
Ten kod działa poprawnie nawet bez rachunku join
.
Co robi metoda join
?
Jak w:Łączenie wątku w Groovy
def thread = Thread.start { println "new thread" }
thread.join()
Ten kod działa poprawnie nawet bez rachunku join
.
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
.
A więc program nic nie zrobi, dopóki "wątek" nie zostanie zakończony? – user1170330
@ user1170330 Dodałem trochę więcej przykładu. –
Dziękuję bardzo! – user1170330