프로그래밍

 3198, 1/160 회원가입  로그인  
   ksbgenius
   [자바]쓰레드를 이용한 출력 관련 프로그램(추가질문)

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=3058 [복사]


import java.util.*;
public class Hello {
        
        
        public static void main(String[] args)throws InterruptedException{
                
                for(int i = 0; i <=4; i++){
                        Date date = new Date();
                        Thread.sleep(1000);
                        System.out.println(date+" 안녕하세요?");
                }
                        for(int i = 0; i <=4; i++){
                        Date date1 = new Date();
                        Thread.sleep(1000);
                        System.out.println(date1+" 안녕히 계세요");
                        
                }
                
        
        }
}

원래 제가 원하는 결과는 1초에 한번씩
안녕하세요
안녕히 계세요
안녕하세요
안녕히 계세요
이런 식으로 번갈아 가면서 출력하는 거였는데...
결과가 안녕하세요 먼저 쭉 나오고, 나중에 안녕히 계세요가 쭉 나와 버리네요...
조언을 부탁 드립니다.
        

  Hit : 4705     Date : 2011/06/13 07:44



    
wnsan1004 package Mypackage;
import java.util.*;

class date extends Thread{

public void run(){
for(int i = 0; i <=4; i++){
Date date = new Date();
try{
Thread.sleep(1000);
}
catch(InterruptedException e){
System.out.println(e);
}
System.out.println(date+" 안녕하세요?");
}
}

}

class date1 extends Thread{
public void run(){
for(int i = 0; i <=4; i++){
Date date1 = new Date();
try{
Thread.sleep(1000);
}
catch(InterruptedException e){
System.out.println(e);
}
System.out.println(date1+" 안녕히계세요");
}
}

}




public class Win {
public static void main(String[] Args){
date a = new date();
date1 b = new date1();

a.start();
b.start();

}
}
구지 쓰레드를 이용하셔서 결과물을 번갈아가면서 뿌리시길 원하신다면, 다음과 같이 쓰면 됩니다. 다음과 같이 쓸경우, 번갈아 나올 경우도 있고, 같은 메소드에서 나온 결과물이 두번 나오는 경우도 있습니다.
2011/06/14  
ksbgenius 하하 감사합니다. ㅎㅎ 2011/06/14