![](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
- sql
- 자바 네티
- NeXTSTEP
- Java
- TDD
- postgresql
- 비관적 락
- 람다
- mysql
- 분산 락
- redis session
- Synchronized
- jvm 메모리 구조
- 네티 스레딩 모델
- mdcfilter
- 트랜잭션
- spring webflux
- Kafka
- socket
- 스프링 네티
- nginx configuration
- spring session
- 카프카
- pessimistic lock
- 구름톤 챌린지
- 구름톤챌린지
- annotation
- transaction
- 넥스트스탭
- nginx
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함