자바에서 스레드를 생성하는 방법에는 다음과 같이 두 가지 방법이 있다.

기본 예제

쓰레드 생성 전

무한 반복 되면서 다음 코드가 실행이 안된다.

package com.java.thread01;

public class BlueFlag {

	public void blueFlagAction() {	
		
		while(true) {
			System.out.println("청기 올려 !!!");
		}
	}
}

package com.java.thread01;

public class WhiteFlag {
	
	public void whiteFlagAction() {
		
	   while(true) {
		System.out.println("백기 올려!!!");
	   }
	}

}

package com.java.thread01;

public class FlagTest {

	public static void main(String[] args) {
		// 콘솔응용프로그램  -> 실행 -> 프로세스
		
		BlueFlag blue = new BlueFlag();
		WhiteFlag white = new WhiteFlag();
		
		blue.blueFlagAction(); //무한 반복
		white.whiteFlagAction();

	}

}

쓰레드 생성 후

1.Thread 상속을 통한 구현

쓰레드가 생성 되면서 동시에 두 플레그가 실행 된다.

package com.java.thread02_thread;

//쓰레드 구현
public class BlueFlag  extends Thread{//1.Thread 클래스 상속

//	public void blueFlagAction() {	
//		
//		while(true) {
//			System.out.println("청기 올려 !!!");
//		}
//	}
	
//2.run 메서드를 재정의 한다.
	@Override
	public void run() {

		while(true) {
			System.out.println("청기 올려 !!!");
		}
	} 
	
	
	
}

package com.java.thread02_thread;

public class WhiteFlag extends Thread{
	
	@Override	
	  public void run() {
		  
		  while(true) {
			  System.out.println("백기 올려 !!!");
		   }
		  
	  }

}

package com.java.thread02_thread;

public class FlagTest {

	public static void main(String[] args) {
		// 콘솔응용프로그램  -> 실행 -> 프로세스
		
		BlueFlag blue = new BlueFlag();
		WhiteFlag white = new WhiteFlag();
		
//		blue.blueFlagAction(); //무한 반복
//		white.whiteFlagAction();
		
		blue.start();
		white.start();

	}

}