![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/F146I/btsp0RX1AHr/4hHvLAip7m4Njs3tNyV5D0/img.png)
finalizer와 cleaner는 기본적으로 자원을 반납할 때 사용하는데 둘 모두 우리가 원하는 순간에 실행된다는 보장이 없다. 자원을 반납해야 하는 이유 OS마다 open할 수 있는 개수가 제한이 되어있다. 파일을 open할 때마다 파일 핸들러라는 것이 만들어지는데 쉽게 생각하면 id라고 보면 된다. 이렇게 파일을 너무 많이 open하면 리눅스 기준 "Too many open files" 에러가 발생하게 된다. 이러한 에러가 발생하는 이유 중 하나로 InputStream, OutputStream 같은 자원을 제대로 반납하지 않는 경우 즉, 열려있는 커넥션을 제대로 정리해주지 않기 때문에 발생한다. 따라서 자원을 잘반납하라고 만든 것이 finalizer와 cleaner이지만 의도와 다르게 제목처럼 사용..
Java/Java
2023. 8. 10. 14:10
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- socket
- 분산 락
- redis session
- sql
- 구름톤챌린지
- annotation
- pessimistic lock
- nginx configuration
- TDD
- nginx
- Java
- 자바 네티
- jvm 메모리 구조
- 구름톤 챌린지
- mysql
- spring session
- NeXTSTEP
- 비관적 락
- postgresql
- 네티 스레딩 모델
- 트랜잭션
- 카프카
- Synchronized
- mdcfilter
- 넥스트스탭
- transaction
- Kafka
- 람다
- spring webflux
- 스프링 네티
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함