본문/내용
1. Java에서 멀티쓰레딩을 구현하는 방법과 각각의 차이점에 대해 설명하시오.
Java에서 멀티쓰레딩을 구현하는 방법은 주로 두 가지가 있습니다. 첫째는 Thread 클래스를 상속받아 사용하는 방법이며, 둘째는 Runnable 인터페이스를 구현하는 방법입니다. Thread 클래스를 상속받으면 별도의 쓰레드 객체를 생성 후 start메서드를 호출하여 실행하며, 이 방식은 코드가 간단하고 빠르지만 여러 클래스를 상속받기 어려운 제약이 있습니다. Runnable 인터페이스를 구현하면 별도 클래스로 구현 가능하며, 이를 Thread에 넘겨주어 실행하는 구조로 유연성이 높습니다. 또한 Java 5부터 도입된 ExecutorService 프레임워크를 활용하면 쓰레드 풀을 만들어 서버 요청 처리 시 생성과 소멸 비용을 줄일 수 있어 성능이 30% 이상 향상됩니다. ThreadPoolExecutor를 이용해 병렬 작업을 효율적으로 제어하고, 작업 큐의 크기를 조절하여 시스템 부하에 따른 안정성을 높일 수 있습니다. 이처럼 각각의 방법은 구현의 용이성과 성능, 유연성 측면에서 차이를 보이며, 실무에서는 ThreadPool을 주로 활용하여 높은 트래픽에도 안정적인 서비스 품질을 유지하고 있습니다.
2. Ja…