운영 체제 기본 지식
프로세스와 스레드
동시성과 병렬성
Context Switching
CPU Bound & I/O Bound
사용자 모드 & 커널 모드
사용자 수준 스레드 & 커널 수준 스레드
Java Thread(스레드 생성 및 실행 구조)
스레드 생성
스레드 실행 및 종료
스레드 생명 주기와 상태
Java Thread(스레드 기본 API)
sleep()
join()
interrupt() & interrupted() & isInterrupted()
interrupt()
interrupted()
isInterrupted()
name() & currentThread() & isAlive()
name()
currentThread()
isAlive()
Priority
Java Thread(스레드 활용)
스레드 예외처리(UncaughtExceptionHandler)
UncaughtExceptionHandler
스레드 중지
사용자 스레드와 데몬 스레드
ThreadGroup
ThreadLocal
동기화 개념
싱글 스레드와 멀티 스레드
동기화와 CPU 관계
임계 영역
안전한 스레드 구성
동기화 기법
뮤텍스
세마포어
모니터
SpinLock
Java Synchronization
synchronized 기본
synchronized
스레드 간 협력(wait() & notify())
wait()
notify()
volatile(메모리 동기화)
volatile
교착 상태(DeadLock)
Java Locks
Lock & ReentrantLock
ReadWriteLock & ReentrantReadWriteLock
Condition
Java 동기화 도구
CAS(Compare and Swap)
Atomic Variable
AtomicFieldUpdater
CountDownLatch
CyclicBarrier
Java 동시성 프레임워크
스레드 풀
Executor
Runnable & Callable
Future & Callback
Future 구조 및 API
ExecutorService API
ScheduledExecutorService
Executors
ThreadPoolExecutor 이해
corePoolSize & maximumPoolSize
keepAliveTime
BlockingQueue
RejectedExecutionHandler
스레드 풀 Hook 메서드
생명 주기와 상태 & ThreadPoolExecutor 아키텍처
비동기 프로그래밍
동기 vs 비동기 & Blocking vs Non Blocking
CompletableFuture
비동기 작업 시작(supplyAsync() & runAsync())
supplyAsync()
runAsync()
비동기 결과 조작(thenApply() & thenApplyAsync())
thenApply()
thenApplyAsync()
비동기 결과 조작(thenAccept() & thenRun())
thenAccept()
thenRun()
비동기 작업 조합(thenCompose() & thenCombine())
thenCompose()
thenCombine()
비동기 작업 조합(allOf() & anyOf())
allOf()
anyOf()
비동기 예외 처리
비동기 완료 처리
비동기 대기 및 취소 처리
ForkJoinPool
내용 참고 : 인프런 - 정수원 님의 "자바 동시성 프로그래밍"
Last updated 9 days ago