인프런 커뮤니티 질문&답변

Rene02님의 프로필 이미지
Rene02

작성한 질문수

나도코딩의 자바 기본편 - 풀코스 (20시간)

Thread

쓰레드 질문입니다!

작성

·

303

0

 안녕하세요? Thread 질문하려 합니다.

직원 청소 시작 (Thread) 메소드는 CleanThread에서 사용하여(즉 Thread 클래스 상속) 작성하였는데

사장 청소 시작은 Thread 클래스에서 상속 받지 않고 바로 Thread 클래스에서 메소드를 작성한 이유를 알고 싶습니다!

답변 1

0

나도코딩님의 프로필 이미지
나도코딩
지식공유자

안녕하세요?

자바 프로그램을 실행하면 기본적으로 메인 쓰레드라고 하는 하나의 쓰레드가 동작하게 됩니다. 이 곳에서 코드를 작성하게 되면 위에서 아래로 순서대로 코드가 실행되며 우리 예제에서는 '사장 청소 시작' 이 바로 그 부분입니다. 즉 Thread 를 상속하지 않고 그냥 메인 메소드에서 바로 cleanByBoss() 메소드를 호출하여 사장님이 청소를 하는 것이죠.

그런데 이와 동시에 직원의 청소도 함께 하기 위해서 별도의 쓰레드를 새로 생성하는 것입니다. 그래서 '직원 청소 시작' 은 말씀하신 것처럼 Thread 를 상속하는 CleanThread() 를 만들고 start() 를 통해 별도의 쓰레드에서 작업을 하도록 합니다. 그러면 사장(메인 쓰레드)님과 직원(별도의 쓰레드)의 청소가 함께 일어나는 효과를 낼 수 있지요!

궁금증 해결에 도움되길 바라겠습니다 😊
감사합니다.

감사합니다. 왜 콘솔창에 항상 -- 사장 청소 시작 -- 이 먼저 나오는지 궁금했는데, 메인 쓰레드가 먼저 실행되서 그런거였군요!

-> 아, 제가 잘못 이해했습니다. 메인 스레드와 서브 스레드 사이에도 순서를 알 수 없어서 -- 직원 청소 시작 -- 이 먼저 나오는 경우도 있네요😅

Rene02님의 프로필 이미지
Rene02

작성한 질문수

질문하기