inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

Runnable

Thread가 동시에 실행이 안됩니다.

해결된 질문

540

후추

작성한 질문수 1

0

 안녕하세요! 좋은 강의 감사합니다.

다름이 아니라 Thread편과 Runnable편에서 나도코딩님이 쓰신 코드를 그대로 써서 실행을 했는데요.

Thread가 동시에 실행되지 않고 사장 청소가 다 실행되고 나서 직원 청소가 진행이 됩니다.

Thread가 동시에 실행되지 않는 이유를 스스로 찾지는 못했습니다.

혹시 제가 쓰고 있는 컴퓨터가 성능이 안 좋은 것도 영향이 있나요? 실행을 누르면 7초에서 10초 뒤에 실행이 완료됩니다.

 

답변해주시면 감사하겠습니다. 좋은 하루 되세요!

(밑에 실행 결과 첨부하겠습니다.)

결과:

-- 사장 청소 시작 --

(사장) 1번방 청소 중

(사장) 3번방 청소 중

(사장) 5번방 청소 중

(사장) 7번방 청소 중

(사장) 9번방 청소 중

--사장 청소 끝 --

-- 직원 청소 시작 (Thread) --

(직원) 2번방 청소 중 (Thread)

(직원) 4번방 청소 중 (Thread)

(직원) 6번방 청소 중 (Thread)

(직원) 8번방 청소 중 (Thread)

(직원) 10번방 청소 중 (Thread)

--직원 청소 끝 -- (Thread)

 

thread java 쓰레드 스레드 oop runnable

답변 3

1

나도코딩

안녕하세요?
청소하는 반복문 속에 아직 Thread.sleep() 는 포함되어 있지 않은 상황이신거죠? 예제에서 제공되는 코드는 너무 빠르게 동작하다 보니 작성하신 것처럼 출력결과 상으로는 사장이 청소를 다 끝내고 직원이 청소를 하거나, 또는 반대로 될 수도 있습니다. 아마 수차례 실행하시다 보면 조금씩 조금씩 결과가 달라져 보일 거에요.
쓰레드 섹션의 뒷쪽 내용을 조금 더 학습하시면 for 반복문 속에 어느 정도 시간이 걸리는 듯한 작업을 흉내내기 위해 sleep() 을 포함시키게 될 텐데, 이렇게 하고 실행하게 되면 확연한 차이를 느끼실 수 있을 것으로 생각됩니다 😊
참고로 쓰레드는 실행 순서를 보장하기 않기 때문에 실행할 때마다 순서가 바뀔 수도 있으며, 이는 정상적인 동작입니다.
감사합니다.

0

후추

말씀해주신대로 뒷부분에 sleep()을 넣게되니 확연한 차이가 있었습니다. 제가 착각을 했었던 거네요 ㅎㅎ. 답변 감사드립니다!

0

나도코딩

확인 댓글 감사드립니다 ^^ 좋은 주말 보내시고, 공부하시다가 또다른 질문 생기시면 언제든지 남겨주세요. 감사합니다.

0

후추

다시 여러 번 돌려보니 사장님이 다 청소 한 뒤에 직원분이 청소를 시작하는 것으로 출력됩니다. 혹시 동시에 실행되는 건데 컴퓨터 성능이 좋지 않아서 실행 속도가 차이나는 것일까요?

0

후추

방금 runnable 실행 해봤는데 아까랑 결과가 달라졌습니다.

-- 사장 청소 시작 --

-- 직원 청소 시작 (Runnable) --

(사장) 1번방 청소 중

(직원) 2번방 청소 중 (Runnable)

(직원) 4번방 청소 중 (Runnable)

(직원) 6번방 청소 중 (Runnable)

(직원) 8번방 청소 중 (Runnable)

(직원) 10번방 청소 중 (Runnable)

--직원 청소 끝 -- (Runnable)

(사장) 3번방 청소 중

(사장) 5번방 청소 중

(사장) 7번방 청소 중

(사장) 9번방 청소 중

--사장 청소 끝 --

뭔가 싶어서 다시 한 번 돌리니 다시 맨 처음 결과와 똑같이 나왔습니다.

 

자바를 처음 배울 때 이런 고민이 드는 게 정상일까요?

1

145

2

static이 뭐였는지 기억이 안나요 ㅜㅜ

0

118

2

Iterator (알 수 없음) 데이터 삭제 후 초기화 관련 문의

0

70

1

사고력 키우는 법이 어떤게 있나요?

0

93

2

getter setter

0

101

2

섹션9. 66 메소드 오버로딩 시 질문이 있습니다.

0

78

1

안녕하세요 갑자기 프로그램 에러가 떠서 안되네요

0

75

2

변수 이름짓는법

0

114

2

intelli J 실행오류

0

114

2

혹시 이건 수학적 사고가 부족한 걸까요?

0

152

2

영상이 재생이 안됩니다.

0

167

3

이중 반복문 (후반전) 오른쪽으로 치우친 별 쌓기에 질문이 있습니다.

0

116

2

응용이 어렵습니다.

0

206

2

IntelliJ가 보이지 않습니다.

0

185

3

JDK 버전 문의

0

128

2

BlackBox 파일 내에서 메소드 정의

0

136

1

동기화

0

120

2

Iterator 문의

0

104

1

코드 순서 문의

0

141

1

클래스 메소드

0

149

2

Quiz_05 관련 질문드립니다 !

0

118

2

다운로드가 안됩니다

0

165

2

다형성

0

119

2

HashMap

0

80

2