| - 수요 설명
| - 아이디어의 실현
| - 콘텐츠 코드
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
. 1 패키지 cn.thread2; 2 . 3 / ** . 4 * 9527 : @auther . 5 * @description : 등반 . 6 * @program : shi_yong . 7 * @Create : 2019년 8월 5일 15시 41분 . 8 * / . 구 공공 클래스 하이킹 유단 실행 가능한이 { 10 //는 데이터를 초기화하는 데 사용되는 두 가지 속성 설정 . 11 개인 의 INT , 시간 (12)이 개인 INT NUM을, 13는 14 공용 하이킹 ( INT의 시간 INT NUM) { 15 이 본 .time =시각; 16 이 .num = NUM; 17 } 18 19 공중 하이킹 () { 20 } 21 22 공중 INT의 다음 getTime () { 23 반환 시간; 24 } 25 26 공중 공극 setTime ( INT의 시간) { 27 이 .time = 시간; 28 } 29 30 공중 INT getNum () { 31 반환 NUM; 32 } 33 34 공개 공극 setNum ( INT NUM) { 35 이 본 .num = NUM; 36 } 37 38이다 @Override 39 공공 공극 () {RUN 40 //이 발생 NUM -1주기의 실제 개수가되도록 프로그램 종결 조건의주기가 0이다 . + 1 NUM (41)은 위해 ( INT I = -num 1]. I> = 0; 난 ... ) { 42 인 = 스레드 T 는 Thread.currentThread (); (43)는 44이다 // 설정 루프가 종료되면 종료 조건 ---- 그것은 이 방법에서 45 IF (I == 0 ) { 46이다 에서 System.out.println (t.getName () +는 "다한") 47 리턴 ; 48 } 49 // 요청 메시지를 출력 (50) 에서 System.out.println (t.getName () + + (NUM - i)는 "첫번째 상승"+ " 100m 번째" ) (51)는 은 try는 { 52 // 세트 시뮬레이션 등반 슬립 단위 시간은 노인, 젊은 짧게하는 데에는 다소 오래 걸린다 53은 Thread.sleep를 (시간) 54이다 } 캐치 (예외 : InterruptedException E) { 55 e.printStackTrace (); 56이다 } (57)는 58 } 59 } 60 61이다 }
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
. (1) 패키지 cn.thread2; 2 . 3 / ** . 4 * 9527 : @auther . 5 * @description : 테스트 클래스 . 6 * @program : shi_yong . 7 * @Create : 2019년 8월 5일 15시 52분 . 8 * / . 9 개 공용 클래스 {시험 10 공공 정적 무효 메인 (문자열 []에 args) { . 11 // 기준 생성자 계대, 100㎛의 젊은 노인 50 밀리 초, 100 밀리 상승 100㎛의 상승 12 // 총 오르기 5 100m 13되고 오래 = 하이킹 새로운 새 하이킹 (100, 5 ); 14 하이킹 = 어린 새 새로운 하이킹 (50,5) 15 // 노인 제공 (16)에게 스레드 올드만 = 새 새 , "노인"스레드 (올드을 ), (17) //이 젊은 제공 (18)는 스레드 YOUNGMAN = 새로운 새로운 "젊은"스레드 (영 ) . 19 oldMan.start (); 20이다 youngMan.start (); 21이다 } 22이다 }
| - 운영 결과
| - 과정에서 문제
상영 시간, 우리는 어떤 디스플레이가 끝에 도달하지 않았다가, 문제가 아래 그림 발견 **
루프 상태의 조사에 의해 발견 된 방법을 수행하지 않는 경우 도시 된 바와 같이, 본체 결과 for 루프에 결합되지 않은 경우, 판정 조건 내가 == 0 인 경우, I의 종료 조건은 1이고; 나는 = 그래서 0이 실행되지 = 방법 체
난> 0, I> = 0이면, 프로그램 실행으로 변경되면