public class MyRunnable implements Runnable {
public void run() {
System.out.println("Runnable 실행 중");
}
}
Thread t = new Thread(new MyRunnable());
t.start();
public class MyThread extends Thread {
public void run() {
System.out.println("Thread 실행 중");
}
}
new MyThread().start();
멀티스레드는 공유 자원을 동시에 접근하므로 동기화 없이는 데이터 오염 가능성이 있습니다.
public synchronized void increment() {
count++;
}
변수를 쓰레드 간에 즉시 공유하도록 보장하는 키워드입니다.
volatile boolean running = true;
synchronized(obj1) {
synchronized(obj2) {
// 데드락 발생 가능
}
}
쓰레드풀 사용을 통해 효율적으로 자원을 관리할 수 있습니다.
ExecutorService pool = Executors.newFixedThreadPool(5);
pool.execute(() -> System.out.println("작업 처리"));