`app_lifetime`

app_lifetime (스레드가 애플리케이션 수명을 따르는지)

스레드를 만들 때 프로세스가 끝나도 계속 돌아가게 할지, 아니면 프로세스가 끝나면 함께 종료될지를 알고 싶을 때가 있어요. app_lifetime이 그 설정을 알려줘요.

출처: Raku Documentation — method 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␤»