쓰레드는 프로세스 여러 개가 동시에 같이 동작하게 하는 방법입니다. 인터넷 온라인 게임을 생각해 보면 쉽습니다. 각 쓰레드가 준비 또는 동작하고 있다가 어떤 이벤트에 의해 동작하도록 하는 것입니다. 채팅 프로그램 같은 경우에는 멀티쓰레드를 사용합니다.
참고로 파일 I/O나 데이터베이스를 제어할 때는 반드시 try~catch문을 사용해야 합니다. 아래 예제는 멀티 쓰레드를 사용하는 예제입니다. 일반적으로 main()이 포함된 클래스는 맨 마지막에 작성하는 것이 편리합니다.

■ MultiThreadMain.java
package firstpackage;
public class MultiThreadMain { 
   public static void main(String[] args) {
      Thread thread1 = new DigitThread(); 
      //DigitThread가 Thread를 상속 받았기 때문에 가능
      Thread thread2 = new StringThread();
      thread1.start();
      thread2.start();
      System.out.println("끝~~~~~~");
   }



■ DigitThread.java
package firstpackage;
public class DigitThread extends Thread {
// Thread를 상속받는다.
// 멀티 상속은 안되며 멀티상속은 인터페이스를 사용하면 된다.
   public void run(){
      for(int i=1; i<101; i++){
      System.out.println(i);
      try {
    Thread.sleep(500);
    } catch (InterruptedException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
    }
      }
   }
}

메소드 run()은 처음에 다른 이름으로 주고 테스트를 진행한 후에 이상이 없을 때 바꾼다.


■ StringThread.java
package firstpackage;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class StringThread extends Thread{   
   public void run(){       
      try {
    FileReader reader = new FileReader("c:/test.txt");
        //파일 입출력,DB 읽을 때 try문 반드시 포함해야 함
    while(true){
       int data = 0;
       try {
          data=reader.read();
       } catch (IOException e){
          e.printStackTrace();
       }
       char ch=(char)data;
       if(data == -1) // 데이터가 없으면의 뜻.
           break;
               System.out.println(ch);
       try {
           Thread.sleep(500);
       } catch (InterruptedException e) {
       // TODO Auto-generated catch block
          e.printStackTrace();
       }
    }
      } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    //e.printStackTrace();
    System.out.println(e);
      }   
   }
}

C드라이브의 루트에 메모장으로 test.txt 파일을 생성한 후 몇 줄의 내용을 입력해 놓아야 한다.



저작자 표시 비영리 변경 금지
신고

'자바(JAVA)' 카테고리의 다른 글

자바 실행파일(exe) 만들기  (5) 2011.10.24
자바 프로그램 이해 - 5  (0) 2011.10.24
자바 프로그램 이해 - 4  (0) 2011.10.24
자바 프로그램 이해 - 3  (0) 2011.10.24
자바 프로그램 이해 - 2  (0) 2011.10.13
자바 프로그램 이해 - 1  (0) 2011.10.12
Posted by 천왕지짐