Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 삼항 연산
- 메소드
- for문
- super()
- Else If
- Integer.MIN_VALUE
- 문자열
- 오버로딩
- 배열
- javascript
- Break
- rs.next()
- jsp
- arraylist
- 상수
- 이클립스
- 인터페이스
- 다형성
- extends
- 자바
- If
- 상속
- 이중 배열
- 삼항 연산식
- docker
- 중첩for문
- 2차원 배열
- interface
- Integer.MAX_VALUE
- scanner
Archives
- Today
- Total
개발로드
☆KDT 2024-02-14★ThreadPool 본문
자바에서의 스레드 풀 사용 예제
스레드 풀은 자바에서 동시에 여러 작업을 처리할 때 효율적으로 관리하기 위한 도구 입니다.
스레드 풀을 사용하면 기존 스레드를 재사용하여 작업을 처리하므로 스레드를 반복적으로 생성하고 삭제하는 오버헤드를 줄일 수 있습니다. 이를 통해 자원을 효율적으로 관리하고 프로그램의 성능을 향상시킬 수 있습니다.
스레드 풀 기본 개념
스레드 풀이란?
- 스레드 풀은 준비된 스레드 그룹으로, 동시에 작업을 수행할 수 있는 작업자 스레드의 풀을 관리합니다.
- 기존 스레드를 재사용하고 새로운 스레드를 생성하고 삭제하는 오버헤드를 줄입니다.
스레드 풀의 장점
- 자원 효율성 : 스레드 풀은 기존 스레드를 재사용하여 오버헤드를 줄여 자원을 효율적으로 관리합니다.
- 성능 향상 : 작업 제출과 실행이 간소화 되므로 동시에 여러 작업을 처리할 때 성능이 향상됩니다.
- 자원 소비 제어 : 스레드 풀을 사용하면 활성 스레드의 수를 제어하여 자원 고갈을 방지 할 수 있습니다.
스레드 풀 사용 예제

이 예제에서는 메인 스레드와 익명 스레드를 사용하여 동시에 작업을 실행하는 스레드 풀의 사용을 보여줍니다. 이 코드의 주요 구성 요소와 기능을 다음 섹션에서 살펴보겟습니다.
주요 구성 요소
- 스레드 생성
- 익명 객체를 사용하여 'Runnable' 인터페이스를 구현하는 익명 스레드 객체를 생성합니다.
- 스레드 풀 초기화
- 'Executors.newCachedThreadPool()' 메서드를 사용하여 스레드 풀을 초기화 합니다. 이 메서드는 활성 스레드의 수에 따라 크기를 동적으로 조정하는 스레드 풀을 생성합니다.
- 작업 실행
- execute() 메서드를 사용하여 익명 스레드를 스레드 풀에 제출합니다.
- 메인 스레드 작업
- 스레드 풀이 작업을 실행하는 동안 메인 스레드는 별도의 작업을 계속합니다.
- 스레드 풀 종료
- shutdown() 메서드를 호출하여 스레드 풀을 올바르게 종료합니다. 이 단계는 프로그램이 무한정 대기하지 않도록 중요합니다.
스레드 생명주기

결론
스레드 풀은 Java 애플리케이션에서 동시성을 관리하는 강력한 도구입니다. 이들은 여러 작업을 동시에 처리하는 데 확장 가능하고 효율적인 솔루션을 제공하며 프로그램의 성능과 자원 사용을 향상시킵니다.
여유가 되신다면 제 GitHub에 오셔서 좋은 코드들을 구경해주세요!

https://github.com/gimpo5975?tab=repositories
gimpo5975 - Overview
gimpo5975 has 2 repositories available. Follow their code on GitHub.
github.com
'JAVA' 카테고리의 다른 글
| ☆KDT 2024-02-16★HTML 첫날 (0) | 2024.02.16 |
|---|---|
| ★KDT 2024-02-15☆ArrayList (1) | 2024.02.15 |
| ★KDT 2024-02-13☆Thread (0) | 2024.02.13 |
| ☆KDT 2024-02-08★Comparable (0) | 2024.02.08 |
| ★KDT 2024-02-06☆StringTokenizer (0) | 2024.02.06 |