답변 2
1
room.clean("직원 1");
이라고 띄어쓰기가 들어가서 그런 것 같네요 ^^
그러다보니 숫자 1 과 함께 출력되어서 11, 12 처럼 보이는 것입니다. 지금 코드에서는 다음과 같이 코드를 바꿔보시면 되겠네요. 직원2 도 동일하게 해주시구요.
room.clean("직원1 ");
0
package chap_12;
import chap_12.clean.Room;
public class _05_Synchronization {
public static void main(String[] args) {
//방 순서 대로 청소
Room room = new Room();
Runnable cleaner1 = new Runnable() {
@Override
public void run() {
System.out.println("직원1 청소 시작");
for (int i = 1; i <= 5; i++) {
room.clean("직원 1");
}
System.out.println("---직원1 청소 완료---");
}
};
Runnable cleaner2 =() -> {
System.out.println("직원2 청소 시작");
for (int i = 1; i <= 5; i++) {
room.clean("직원 2");
}
System.out.println("---직원2 청소 완료---");
};
java.lang.Thread cleanThread1 = new java.lang.Thread(cleaner1);
java.lang.Thread cleanThread2 = new java.lang.Thread(cleaner2);
cleanThread1.start();
cleanThread2.start();
}
}
헐 이런 부분까지 생각 해야되다니... 컴퓨터 언어는 정말 세심의 필요성을 깨닫게 되네요
답변 감사합니다~~