본문 바로가기

Java/본격 Java 스레드

[Java] 스레드(Thread)

스레드(thread)

 - java.lang 패키지에 있는 클래스
 - 프로그램의 실행흐름을 의미하는 것으로 일반적으로 main()메소드를 시작으로 하나의 흐름으로 진행됩니다.
 - 두 개이상의 흐름을 작업하면 멀티스레드라 하여 각 실행 흐름을 제어합니다.

.

.

예제

class ShowThread extends Thread{
	//Thread클래스를 상속받음으로써 ShowThread클래스는 하나의 쓰레드로 동작할 수 있음
	String threadName;
	public ShowThread(String name){
		threadName = name;
	}
	public void run(){
		// Thread클래스의 메소드로 오버라이딩하여 작업해야 함
		// 실제 현 스레드에서 해야 할 작업을 구현해 놓는 메소드
		// start()메소드가 아닌 직접 호출하게 되면 동작은 가능하나 스레드로서 동작하진 않습니다.
		for (int i = 0 ; i < 10 ; i++ )
		{
			System.out.println("안녕하세요. " + threadName + "입니다.");
			try
			{
				sleep(10); 
				// 0.01초 동안 일시 멈춤(다른 쓰레드가 동작하도록)
				// InterruptedException을 처리해야 하는 메소드
			}catch (InterruptedException e){ // Exception e 로 해도 상관없음
				e.printStackTrace();
				//System.out.println("ShowThread에서 문제 발생");
			}
		}
	}
}

class ThreadEx1
{
	public static void main(String[] args) 
	{
		ShowThread st1 = new ShowThread("1st 쓰레드");
		ShowThread st2 = new ShowThread("2nd 쓰레드");

		st1.start();
		st2.start();
		// start() : thread를 시작시키는 메소드로 자동으로 run()메소드 호출
	}
}

.

.

run()이라는 메소드는 따로 정의하지 않았지만 thread클래스의 메소드로 오버라이딩해서 작업해야합니다.

728x90
반응형