안녕하세요. 여러분
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
오픈 일정이 7월 15일(월)로 확정 되었습니다.
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
* 강의 시간: 20시간 48분
* 강의 수: 118강
* 강의 PDF 자료: 약 500장
* 그림: 270장
고급1편은 멀티스레드와 동시성을 CS 기본기부터 실무에 필요한 활용 기술까지 완전히 마스터하는 것을 목표로 합니다. 그리고 복잡한 멀티스레드를 최대한 쉽게 설명하기 위해 무려 270장의 그림이 들어갑니다!
[앞으로의 계획]
고급편은 1,2,3편으로 나누어 출시될 예정입니다.
* 고급 1편: 멀티스레드와 동시성 (7/15)
* 고급 2편: I/O, 네트워크, 리플렉션, 애노테이션 (10월 중 예정)
* 고급 3편: 람다, 스트림, 모던 자바 (12월 중 예정)
[강의 소개]
김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
강의 목표
단순히 스레드의 기초를 아는 것을 넘어서, 실무에 필요한 자바 멀티스레드 기술과 동시성 문제를 정말 깊이있게 제대로 이해하고, 또 실무에서 제대로 활용할 수 있게 가르쳐 드리겠습니다.
강의 내용
기반을 다지는 CS 이론 학습
* 프로세스와 스레드
* 멀티태스킹
* 스케줄링2
스레드의 기본기
* 스레드 제어
* 스레드 생명 주기
* 메모리 가시성, volatile
* synchronized 동기화
* ReentrantLock - 고급 동기화
* 스레드 제어 - 다양한 예제
스레드의 고급 기술들
* 생산자 소비자 문제
* CAS
* 동기화 컬렉션
실무에서 사용하는 멀티스레드 실전 기술들
* Future의 작동 원리
* 스레드 풀과 Executor 프레임워크 - 원리
* 스레드 풀과 Executor 프레임워크 - 실전 활용
[강의 전체 목차]
1. 프로세스와 스레드 소개
* 멀티태스킹과 멀티프로세싱
* 프로세스와 스레드
* 스레드와 스케줄링
* 컨텍스트 스위칭
2. 스레드 생성과 실행
* 프로젝트 환경 구성
* 스레드 시작1
* 스레드 시작2
* 데몬 스레드
* 스레드 생성 - Runnable
* 로거 만들기
* 여러 스레드 만들기
* Runnable을 만드는 다양한 방법
* 문제와 풀이
* 정리
3. 스레드 제어와 생명 주기1
* 스레드 기본 정보
* 스레드의 생명 주기 - 설명
* 스레드의 생명 주기 - 코드
* 체크 예외 재정의
* join - 시작
* join - 필요한 상황
* join - sleep 사용
* join - join 사용
* join - 특정 시간 만큼만 대기
* 문제와 풀이
4. 스레드 제어와 생명 주기2
* 인터럽트 - 시작1
* 인터럽트 - 시작2
* 인터럽트 - 시작3
* 인터럽트 - 시작4
* 프린터 예제1 - 시작
* 프린터 예제2 - 인터럽트 도입
* 프린터 예제3 - 인터럽트 코드 개선
* yield - 양보하기
* 프린터 예제4 - yield 도입
* 정리
5. 메모리 가시성
* volatile, 메모리 가시성1
* volatile, 메모리 가시성2
* volatile, 메모리 가시성3
* volatile, 메모리 가시성4
* 자바 메모리 모델(Java Memory Model)
* 정리
6. 동기화 - synchronized
* 출금 예제 - 시작
* 동시성 문제
* 임계 영역
* synchronized 메서드
* synchronized 코드 블럭
* 문제와 풀이
* 정리
7. 고급 동기화 - concurrent.Lock
* LockSupport1
* LockSupport2
* ReentrantLock - 이론
* ReentrantLock - 활용
* ReentrantLock - 대기 중단
* 정리
8. 생산자 소비자 문제1
* 생산자 소비자 문제 - 소개
* 생산자 소비자 문제 - 예제1 코드
* 생산자 소비자 문제 - 예제1 분석 - 생산자 우선
* 생산자 소비자 문제 - 예제1 분석 - 소비자 우선
* 생산자 소비자 문제 - 예제2 코드
* 생산자 소비자 문제 - 예제2 분석
* Object - wait, notify - 예제3 코드
* Object - wait, notify - 예제3 분석 - 생산자 우선
* Object - wait, notify - 예제3 분석 - 소비자 우선
* Object - wait, notify - 한계
* 정리
9. 생산자 소비자 문제2
* Lock Condition - 예제4
* 생산자 소비자 대기 공간 분리 - 예제5 코드
* 생산자 소비자 대기 공간 분리 - 예제5 분석
* 스레드의 대기
* 중간 정리 - 생산자 소비자 문제
* BlockingQueue - 예제6
* BlockingQueue - 기능 설명
* BlockingQueue - 기능 확인
* 정리
10. CAS - 동기화와 원자적 연산
* 원자적 연산 - 소개
* 원자적 연산 - 시작
* 원자적 연산 - volatile, synchronized
* 원자적 연산 - AtomicInteger
* 원자적 연산 - 성능 테스트
* CAS 연산1
* CAS 연산2
* CAS 연산3
* CAS 락 구현1
* CAS 락 구현2
* 정리
11. 동시성 컬렉션
* 동시성 컬렉션이 필요한 이유1 - 시작
* 동시성 컬렉션이 필요한 이유2 - 동시성 문제
* 동시성 컬렉션이 필요한 이유3 - 동기화
* 동시성 컬렉션이 필요한 이유4 - 프록시 도입
* 자바 동시성 컬렉션1 - synchronized
* 자바 동시성 컬렉션2 - 동시성 컬렉션
* 정리
12. 스레드 풀과 Executor 프레임워크1
* 스레드를 직접 사용할 때의 문제점
* Executor 프레임워크 소개
* ExecutorService 코드로 시작하기
* Runnable의 불편함
* Future1 - 소개
* Future2 - 분석
* Future3 - 활용
* Future4 - 이유
* Future5 - 정리
* Future6 - 취소
* Future7 - 예외
* ExecutorService - 작업 컬렉션 처리
* 문제와 풀이
* 정리
13. 스레드 풀과 Executor 프레임워크2
* ExecutorService 우아한 종료 - 소개
* ExecutorService 우아한 종료 - 구현
* Executor 스레드 풀 관리 - 코드
* Executor 스레드 풀 관리 - 분석
* Executor 전략 - 고정 풀 전략
* Executor 전략 - 캐시 풀 전략
* Executor 전략 - 사용자 정의 풀 전략
* Executor 예외 정책
* 정리
감사합니다.