자바에서 쓰레드(Thread)를 사용하는 방법은 2가지가 있다.
1. Thread를 직접상속 받아 사용하는 방법.
2. Runnable 인터페이스를 구현하는 방법.
두 가지 모두 알아보겠지만 자바에서는 다중 상속이 불가능하기 때문에 1번 방법을 사용하면 다른 클래스를 상속받을 수 없다.
따라서 왠만하면 2번 방법을 추천한다.
1. Thread를 직접상속 받아 사용하는 방법.
쓰레드
public class MyExtendThread extends Thread { public void run() { //구현 System.out.println("Thread1"); } }
메인
public class JavaTestMain { public static void main(String[] args) { Thread t = new MyExtendThread(); t.start(); } }
MyExtendThread의 생성자를 만들어 자료구조나 다른 인자들을 넘겨줄 수도 있다.
2. Runnable 인터페이스를 구현하는 방법.
쓰레드
public class MyRunnableThread implements Runnable { public void run() { //구현 System.out.println("Thread2"); } }
메인
public class JavaTestMain { public static void main(String[] args) { MyRunnableThread t1 = new MyRunnableThread(); Thread t2 = new Thread(t1); // thread에 runnable을 넘겨준다. t2.start(); } }
가끔 t1.run()을 직접 사용하는 사람이 있는데 옳지 않은 방법이다. 그렇게 하면 Thread의 join이나 interrupt등의 멤버함수를 사용할 수 없게 된다.
MyRunnableThread의 생성자를 만들어 자료구조나 다른 인자들을 넘겨줄 수도 있다.
쓰레드의 주요 함수
start 쓰레드를 시작한다.
join 쓰레드가 종료될 때 까지 기다린다.
interrupt 쓰레드에 인터럽트를 날린다. 인터럽트를 받으면 해당 스레드는 InterruptedException이 발생한다. 쓰레드에 try
catch문을 사용해서 interrupt처리한다.
Thread 참고 자료
http://docs.oracle.com/javase/tutorial/essential/concurrency/threads.html
'Language, IDE > JAVA, android' 카테고리의 다른 글
[JAVA 자바] 매개변수 (0) | 2013.07.22 |
---|---|
[JAVA 자바] StringTokenizer (0) | 2013.07.14 |
[Java 자바] string to int, int to string (0) | 2013.07.07 |
[JAVA 자바] 자바 실행환경 구축 (자바 설치) (0) | 2013.06.23 |
[JAVA 자바] 환경변수 설정 (2) | 2013.06.23 |