예외처리 쓰레드
📘자바
예외 처리
오류가 생겼을경우 프로그램이 할 동작을 처리하는 방법
try-catch문
// ... 이전 동작
try {
// 시도해 볼 동작
} catch ( Exception e) {
//오류 발생 시
} finally{ // 오류가 나든 안나든 동작 ( 쓰는 이유는 try나 catch에 함수를 종료해버리는 return이 있을경우 함수가 종료되기때문)
}
// ... 이후 동작
쓰레드
스레드(thread)란 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미한다 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다. 스레드의 생성과 실행
자바에서 스레드를 생성하는 방법에는 다음과 같이 두 가지 방법이있다
- Runnable 인터페이스를 구현하는 방법
- Thread 클래스를 상속받는 방법
두 방법 모두 스레드를 통해 작업하고 싶은 내용을 run() 메소드에 작성하면 된다.
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();
}
}
}
}
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();
}
}
}
}
public class Thread01 {
public static void main(String[] args){
ThreadWithClass thread1 = new ThreadWithClass(); // Thread 클래스를 상속받는 방법
Thread thread2 = new Thread(new ThreadWithRunnable()); // Runnable 인터페이스를 구현하는 방법
thread1.start(); // 스레드의 실행
thread2.start(); // 스레드의 실행
}
}
코딩연습 ▶
실행 결과 Thread-0
Thread-1
Thread-0
Thread-1
Thread-0
Thread-1
Thread-0
Thread-1
Thread-0
Thread-1
위 예제의 실행 결과를 살펴보면, 생성된 스레드가 서로 번갈아가며 실행되고 있는 것을 확인할 수 있다.
Thread 클래스를 상속받으면 다른 클래스를 상속받을 수 없으므로, 일반적으로 Runnable 인터페이스를 구현하는 방법으로 스레드를 생성한다.