ExecutorService
: 쓰레드 풀을 생성하여 병렬처리할 수 있다.
콜백과 리스너 차이
https://crazykim2.tistory.com/630
ThreadPoolExecutor
: 멀티 스레드 구현
call by value / call by reference
https://yoojin99.github.io/cs/Call-by-Value-Call-by-Reference/
Executors.newFixedThreadPool()
:
ExecutorService.class
: 병렬 작업 시 여러 개의 작업을 효율적으로 처리하기 위해 제공되는 JAVA 라이브러리
ExecutorService에 Task만 지정해주면 친절하게 알아서 ThreadPool을 이용해서 Task를 실행하고 관리한다.
ThreadFactory의 newThread()
스레드 풀에서 스레드 생성 시 ThreadFactory.newThread 로 생성되게 되어있음
ex) 위의 Executors.newFixedThreadPool()
https://dydtjr1128.github.io/java/2019/12/14/JAVA-ThreadFactory.html
데몬 스레드 (Daemon)
: 주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드
주 스레드가 종료되면 데몬 스레드는 강제적으로 자동 종료된다. 이를 제외하면 데몬 스레드는 일반 스레드와 차이가 없다
ex) 워드프로세스의 자동 저장, JVM 가비지 컬렉터, 미디어 플레이어의 동영상 및 음악 재생 등
ThreadPoolExecutor.class
ExecutorService.submit()
폴링
: 하나의 장치(또는 프로그램)이 충돌 회피 또는 동기화 처리 등을 목적으로 다른 장치(또는 프로그램)의 상태를 주기적으로 검사하여 일정한 조건을 만족할 때 송수신 등의 자료처리를 하는 방식을 말한다
IdleStateHandler.class
: 특정 시간 동안 read, write, 또는 read/write 동작이 없을 때 이를 체크해 사용자에게 알려주는 역할을 수행
IdleStateHandler(int readerIdleTimeSeconds, int writerIdleTimeSeconds, int allIdletimeSeconds)
http://okminseok.blogspot.com/2019/01/netty-idlestatehandler-idle.html
ChannelDuplexHandler.class
: userEventTriggered()
https://shortstories.gitbook.io/studybook/netty/cc44_b110_d30c_c774_d504_b77c_c7782c_cf54_b371
ProtobufVarint32FrameDecoder
ProtobufDecoder
ProtobufVarint32LengthFieldPrepender
ProtobufEncoder
IDLE
: 프로세스가 실행되고 있지 않은 상태
예를 들어 I/O 인터럽트 대기중이거나, 준비 큐에서 대기하거나, sleep하고있거나....
정리가 잘 된 글이네요. 도움이 됐습니다.