Week3(2/2) Threads
쓰레드
Java에서 스레드를 만드는 방법을 설명해 주세요.
자바에서 스레드를 만드는 방법에는 두 가지가 있습니다.
첫 번째는
Thread
클래스를 상속받아run()
메서드를 오버라이딩하는 방법두 번째는
Runnable
인터페이스를 구현하여run()
메서드를 정의한 후, 이를Thread
객체에 전달하는 방법입니다. 다른 클래스를 상속받을 수 있기때문에 확장성이 높다.
Runnable과 Callable의 차이는 무엇인가요?
Runnable과 Callable은 자바에서 멀티스레딩을 구현할 때 사용되는 인터페이스입니다.
Runnable은 반환값이 없고, 예외를 던질 수 없다.
Callable은 값을 반환할 수 있으며, 체크 예외를 던질 수 있습니다.
Runnable은 단순한 작업을 실행할 때, Callable은 작업 결과나 예외 처리가 필요한 경우에 사용됩니다.
sleep()과 wait()의 차이는 무엇인가요?
sleep()과 wait()는 자바에서 스레드의 실행을 일시적으로 멈추는 데 사용되지만, 목적과 동작 방식이 다릅니다.
sleep()은 스레드를 일정 시간 동안 일시 정지시키는 데 사용되며, 모니터 락을 해제하지 않습니다.
wait()는 스레드가 다른 스레드의 신호를 기다리기 위해 대기 상태에 들어가는 메서드로, 모니터 락을 해제하고 synchronized 블록 내에서만 사용할 수 있습니다.
스레드 풀이란 무엇이고, 왜 사용할까요?
스레드 풀(Thread Pool)은 미리 생성된 스레드들의 집합으로, 새로운 작업이 들어올 때마다 스레드 풀에서 스레드를 할당해 작업을 처리합니다. 스레드 풀을 사용하면 새로운 스레드를 생성하는 비용을 줄이고, 자원을 효율적으로 관리할 수 있으며, 시스템의 안정성을 높일 수 있습니다.
Last updated