• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

쓰레드 질문입니다!

23.08.05 11:04 작성 조회수 236

0

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

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

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

답변 1

답변을 작성해보세요.

0

안녕하세요?

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

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

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

Ambition님의 프로필

Ambition

2023.08.16

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

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