동시에 10 개의 스레드가 실행되고 있다고 가정 해 보겠습니다. 쓰레드가 끝날 때 어떤 메소드를 호출 할 방법이 있습니까? 그냥 일반적인 제안 그래서 내가 여기 어둠 속에서 정말이야Perl 스레드가 작업을 끝내면 어떤 일을 할 수 있습니까?
$thread->onFinish(sub { print "I'm done"; });
동시에 10 개의 스레드가 실행되고 있다고 가정 해 보겠습니다. 쓰레드가 끝날 때 어떤 메소드를 호출 할 방법이 있습니까? 그냥 일반적인 제안 그래서 내가 여기 어둠 속에서 정말이야Perl 스레드가 작업을 끝내면 어떤 일을 할 수 있습니까?
$thread->onFinish(sub { print "I'm done"; });
제목에서 물어 보는 질문과 본문에서 묻는 질문이 다릅니다.
다른 스레드가 스레드가 계속 실행 중인지 확인하는 표준 방법은 사용자의 필요에 따라 is_running
및/또는 is_joinable
을 사용하여 스레드를 기다리거나 폴링하는 것입니다.
i'm done
을 인쇄하려면 스레드 본문에서 마지막으로 실행 한 명령문이 출력되고 인쇄되는지 확인하십시오.
threads->create(sub {
# call the actual routine that does the work
print "i'm finished\n";
});
: 내가 좋아하는 뭔가 생각이 콜백 메커니즘을 구현할 수 있습니다. 아무 것도 없으면 스레드가 시작될 때 onFinish 메서드로 객체를 전달할 수 있습니다. 그리고 그것이 그 작업을 마치면 (내부 상태에 따라) 스레드로부터 그 함수를 호출하십시오.