강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của qpal1zm23
qpal1zm23

câu hỏi đã được viết

RxJava dễ hiểu của Kevin, phần 1

Lập trình phản ứng là gì?

1강에 예시로 보여주신 ToDoSample 코드에 관해 질문 드립니다!

Viết

·

349

0

안녕하세요! 이제 막 RxJava를 배우기 시작하였습니다 ㅎㅎ

1강 14:20초 즈음에 예시로 보여주신 ToDoSample.class코드에 대해 질문 드립니다.

java app은 main thread가 종료되어도 다른 non-deamon thread가 실행 중이면 app이 종료되지 않는 것으로 알고 있는데,

subscribeOn( Schedulers.io() ) 메소드 실행 시, 다른 thread 가 시작하기도 전에 main thread가 종료되어, 실행 중인 thread가 없어져 app이 종료되었다고 파악해야 할까요??

subscribeOn( Schedulers.io() ) 메소드를 실행하였음에도 왜 다른 스레드가 실행이 바로 되지 않는 걸까요??

 

 

함수형-프로그래밍RxJavaReactive-Streams

Câu trả lời 1

0

Kevin님의 프로필 이미지
Kevin
Người chia sẻ kiến thức

안녕하세요? 낮엔 업무중이고, 밤엔 육아를 해야해서 답변이 조금 늦었습니다. ^^;

질문 주신 내용 중에

java app은 main thread가 종료되어도 다른 non-deamon thread가 실행 중이면 app이 종료되지 않는 것으로 알고 있는데,

에 대한 답변을 드리자면 RxJava의 Scheduler로 생성하는 쓰레드는 디폴트가 daemon thread입니다. 그래서 main thread가 종료되면서 함께 종료가 된다고 보시면 되구요.

만약, subscribeOn(Schedulers.io()) 대신에 subscribeOn(Schedulers.from(Executors.newFixedThreadPool(5)))와 같이 ExecutorServerice를 이용할 경우, 생성되는 thread는 non-daemon thread여서 main thread가 종료되어도 해당 thread는 종료되지 않습니다.

답변이 되셨길 바랍니다.

다른 궁금한 점이 있으시면 언제든지 질문주세요.

감사합니다.

Hình ảnh hồ sơ của qpal1zm23
qpal1zm23

câu hỏi đã được viết

Đặt câu hỏi