`app_lifetime`
app_lifetime (스레드가 애플리케이션 수명을 따르는지)
스레드를 만들 때 프로세스가 끝나도 계속 돌아가게 할지, 아니면 프로세스가 끝나면 함께 종료될지를 알고 싶을 때가 있어요. app_lifetime이 그 설정을 알려줘요.
본문
Thread
method app_lifetime(Thread:D: --> Bool:D)
객체를 만들 때 이름 인자 :app_lifetime이 명시적으로 True로 설정되지 않았다면 False를 돌려줘요. False라면 프로세스는 그 스레드가 끝날 때까지 기다렸다가 종료되고, True라면 메인 스레드가 종료될 때 그 스레드도 함께 종료돼요.
my $t1 = Thread.new(code => { for 1..5 -> $v { say $v }});
my $t2 = Thread.new(code => { for 1..5 -> $v { say $v }}, :app_lifetime);
say $t1.app_lifetime; # OUTPUT: «False»
say $t2.app_lifetime; # OUTPUT: «True»