[자바/JAVA] 스레드 종료시까지 대기하는 join() 메소드

Posted by 앱해피
2015. 8. 19. 10:41 자바(JAVA)

 

자바나 안드로이드로 프로그래밍을 하다보면 작업을 분리해서 다른 스레드에 할당해야 하는 경우가 적지 않습니다.

 

그리고 메인 스레드에서 별도의 스레드에서 처리한 작업이 완료될 때까지 기다려야 하는 경우가 많이 있습니다. 

 

이 경우에는 Thread의 join() 메소드를 사용하여 이 문제를 해결할 수 있습니다.

 

 

public class ThreadJoinTest {

	public static void main(String[] args) 
	{
		Thread workingThread = new Thread()
		{	
			public void run() 
			{
				try 
				{
					Thread.sleep(3000); // 작업 스레드 3초간 정지...
					System.out.println("작업 스레드 종료");
				} catch(InterruptedException ex) {

				}
			}
		};

		workingThread.start(); // 작업 스레드 시작.
		
		try {
			/*
				join() 메소드 실행.
				thread 스레드가 종료될 때까지 main 스레드가 대기한다.
				join() 메소드는 InterruptedException을 발생한다.
			*/

			workingThread.join(); // 메인 스레드에서 작업 스레드의 종료를 대기한다.
		} 
		catch(InterruptedException e) {
			
			e.printStackTrace();
		}
		
		System.out.println("작업 스레드 종료 후... Main 스레드 다시 동작");
	}
}
""

감사합니다!!! ^_^