Thread
Process
: 개별적으로 동작하는 프로그램 (Eclipse, Messaenger etc)-
Thread
: Process를 구성하는 작은 실행단위 (Messenger = chat + file transfer) Multi-process
: 동시에 여러개의 process를 실행 = 각 프로세스가 독립적인 메모리Multi-thread
: 하나의 process 에서 여러개의 thread가 동시에 동작 = 스레드가 자신이 속한 프로세스의 메모리 공유
Thread 생성
Runnable interface 구현
class ThreadWithRunnable implements Runnable {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName());
// 현재 실행 중인 스레드이름 반환
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
Thread class 상속
class ThreadWithClass extends Thread {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(getName());
// 현재 실행 중인 스레드이름 반환
try {
Thread.sleep(10); // 0.01초간 스레드를 멈춤
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
test
public class Thread01 { public static void main(String[] args){ // Thread 클래스를 상속받는 방법 ThreadWithClass thread1 = new ThreadWithClass(); // Runnable 인터페이스를 구현하는 방법 Thread thread2 = new Thread(new ThreadWithRunnable()); thread1.start(); // 스레드의 실행 thread2.start(); // 스레드의 실행 } }