Java

[Java] thread 생성 방식 - (Runnable + Thread)

끊임없이 개발하는 새럼 2025. 6. 17. 13:44

지금 내가 사용하는 생성 방식은 Runnable + Thread 방식이고, 최근에는 ExecutorService 기반의 스레드 풀 방식을 사용한다고 한다.

 

* 스레드 생성 방식 비교: thread 직접 생성 vs ExecutorService

 

1. Runnable + Thread 방식

Runnable r = new Runnable() {
    public void run() {
        // 작업 처리
    }
};
Thread t = new Thread(r);
t.start();
  • Thread 객체를 직접 생성하고 실행
  • 스레드를 재사용하지 않고 매번 새 스레드 생성
  • 관리와 종료 제어가 불편함 (종료 제어 코드를 추가로 구성해야 함)

 

2. ExecutorService 방식

ExecutorService executor = Executors.newFixedThreadPool(5);

executor.submit(() -> {
    // 작업 처리
});
  • 스레드 풀 관리
  • 큐 기반의 작업 처리

 

여기서 내가 사용한 Runnable + Thread 방식을 정리해 보려고 한다.

 

private Vector<Thread> m_threads = new Vector();

private void doWork() {
	for (int i = 0; i < m_threadCnt; i++) {
		threadsRun();
	}
}

public void threadsRun() {
	Runnable r = new Runnable() {
		public void run() {
   			String doc_id = dt.doWork();
            ...
		}
        };
	Thread thread = new Thread(r);
	thread.start();

	m_threads.add(thread);
 }

 

  • doWork()에서 n개의 스레드 생성
  • 각 스레드는 dt.doWork() 수행
  • 각 스레드 객체는 Vector에 넣어서 추후 관리 가능
  • 종료 제어 코드도 추가해야 함

 

'Java' 카테고리의 다른 글

암호화 알고리즘  (1) 2026.01.31
[java] 통계 시스템 제작 # 01  (0) 2025.07.09
[java] db에 적재된 디렉토리 경로 수정하기  (3) 2024.09.26
[java] 서버에서 db2 데이터 이관  (0) 2024.08.12