수업 내용 정리
자바는 GC(가비지 콜랙터) 개선이 힘들다.
sychronized 동기화 lock(락)을 사용해서 다중의 스레드의 동시 접근을 제한한다.
wait() : 객체의 lock을 풀고, 쓰레드를 해당 객체의 waiting pool 에 넣는다.
notify() : waiting pool 에 대기중인 쓰레드 중 하나를 깨운다.
notifyAll() : waiting pool 에서 대기중인 모든 쓰레드를 깨운다.
비동기처리보다 쓰레딩이 더 간단하고 빠르다.
락의 종류 3가지
- 베타락
Mutex lock: 메소드의 중복 허용 X - 공유락
Semaphore lock: 메소드의 중복 허용 O - 낙관적인 잠금
Optimistic lock: 일단 잠금 후 나중에 확인
캐시 메모리의 캐시 종류 3가지
L1캐시: 크기가 가장 작고, 가장 빠르다.L2캐시: 크기가L1보다 크고,L1보다 조금 느리다.L3캐시: 크기가 가장 크다, 속도도 느리지만 캐시에서 공유 메모리로 쓰인다.
volatile
- 캐시가 아닌 메모리에서 값을 불러오도록 하는 제어자(키워드)
- 자주 바뀌는 값일 경우 자주 쓰인다.
volatile {타입} {변수명};
fork & join
- 하나의 작업을 작은 단위로 나눠서 여러 쓰레드가 동시에 처리하는 것
Recursive Action과Recursive Task중 하나를 상속받아서 구현한다.- 작업을 어떻게 나눌 것 인지도 명시해야 한다.
가상 쓰레드(Virtual Thread)
- 기존의 쓰레드의 경량 버전이다.
- 기존 쓰레드 객체를 최대한 유지해서 활용한다.
가상 쓰레드는 항상 데몬 쓰레드로만 가능하다.가상 쓰레드는 우선순위(5로 고정)가 고정되어 바뀌지 않는다.- 바뀌기 시도해도 바뀌지 않는다.
OS 쓰레드와플랫폼 쓰레드는 1대1 로 연결되며,system call을 사용해 연결해서 오버헤드가 크다.- 반면에
가상 쓰레드는플랫폼 쓰레드와 연결되어서, 오버헤드가 적다.
- 반면에
가상 쓰레드는 4,000만 개를 구현할 수 있으며, 오버헤드가 10배 정도 적다.context switching(문맥 교환)시간이 적다.OS 쓰레드와문맥교환보다JVM 쓰레드와문맥교환이 빠르기 때문이다.
Thread.ofVirtual()- 가상 쓰레드 생성- 가상 쓰레드는
main이 종료되면 자동종료되기 때문에 이것을 막기 위해join()를 활용해서 자동종료를 방지한다.
플랫폼 쓰레드(Platform Thread)
- 가상 쓰레드가 아닌 기존의 쓰레드
Thread.ofPlatform()- 플랫폼 쓰레드 생성
람다식 (Lambda)
- 한 줄짜리 함수
- 예시
(int x, int y) → a > b ? a : b(String name, int i) → System.out.println(name + “=” + i)(int x) → x * x() → (int)(Math.random() * 6)
Stream 객체
- 입출력을 보조하는 것
InputStreamOutputStream- 바이트 기반 스트림(기준 1byte): 바이트 단위로 읽어서 처리하는 것
- 데이터 기반 스트림(기준 int, float): 기본형 단위로 처리하는 것
미니피(Minify)
- 공백이나 주석을 모두 지운 버전의 파일
더블 버퍼링(Double Buffering)
- 버퍼를 2개 두어서 완벽하게 불러오기까지 대기했다가 화면에 한번에 뿌려준다.
- 이때 웹사이트가 깜빡거리는 현상이 없어지는 효과가 있다.
이번주를 마치며...
이번주도 하루에 약 10종류의 공부를 하면서, 공부하는 것이 지루하지 않게 하려고 노력했던 것 같다. 하지만 금요일 마지막에 집중을 조금 못한 것은 아쉽지만, 다음주는 좀 더 잘해보자고~
'패스트캠퍼스 국비지원 주간 학습 블로그' 카테고리의 다른 글
| 7주차 부트캠프 회고! (2) | 2025.08.02 |
|---|---|
| 6주차 부트캠프 회고 (3) | 2025.07.27 |
| 4주차 백엔드 부트캠프 회고 (2) | 2025.07.13 |
| 3주차 부트캠프 회고 - 토끼가 짱이야 (2) | 2025.07.04 |
| 백엔드 13기 2주차 - 객체 생성, 디자인 패턴, null 타입 (4) | 2025.06.29 |