본문 바로가기

java13

비동기 & 논블러킹 의미 분석 사실이 아니라 공부한 내용과 생각을 정리한 글입니다. 언제든 가르침을 주신다면 감사하겠습니다. 1. 동기와 비동기 코드적으로 접근해야 하는 개념 특정 코드 블락이 다른 코드 블락의 완료 여부에 의존해서 실행될 때 동기적으로 실행된다고 표현 비동기를 구현하는 가장 흔한 방법으로, 특정 코드 블락이 실행되는 동안 다른 코드 블락을 실행하기 위해 별도의 스레드를 할당하여 두 코드 블락이 독립적으로 수행되도록 함 또는 call-back 을 사용 한계 외부 API 호출이나 DB 접근을 비 동기적으로 수행한다고 해 보자 별도의 스레드를 할당해 해당 작업을 수행하면 원래 작업을 하던 스레드는 블러킹 되지 않는다. 하지만, 별도로 할당한 스레드는 블러킹 되고 있다. 2. 논블러킹 스레드적으로 접근해야 하는 개념 스레드.. 2022. 8. 11.
[java] 내부 클래스(static vs non-static) 사실이 아니라 공부한 내용과 생각을 정리한 글입니다. 언제든 가르침을 주신다면 감사하겠습니다. 특정 클래스 속에 있는 클래스를 내부 클래스라고 부른다. 내부 클래스는 static으로 만들 수도 있고 non-static으로 만들 수도 있는데 이 차이에 대해 정확하게 알고 싶어서 공부하게 되었다. 다음과 같은 code 가 있다고 하자. package extra.static_code; public class OuterClassFactory { class InnerClass { private String val; InnerClass(String val){ this.val = val; } } static class StaticInnerClass { private String val; StaticInnerClass.. 2022. 6. 18.
[Collection Framework] 정리 참고 https://gbsb.tistory.com/247 자바 컬렉션 프레임워크(Java Collection Framework) 정리 목차 자바 컬렉션 프레임워크 컬렉션 인터페이스 1. Collection 인터페이스 그룹 1.1 Collection 인터페이스 1.2 List 인터페이스 1.3 Set 인터페이스 1.4 SortedSet 인터페이스 1.5 Queue 인터페이스 1.6 Deque.. gbsb.tistory.com 1. List 순서가 있는 컬렉션이며 중복 요소를 포함할 수 있다. 인덱스로 모든 요소에 접근할 수 있다. 정렬: Collections.Sort() https://wjheo.tistory.com/entry/Java-%EC%A0%95%EB%A0%AC%EB%B0%A9%EB%B2%95-Co.. 2022. 1. 4.
Thread pool vs Reactive 1. Thread pool 구조 미리 스레드 풀을 만들어 두고 사용자의 요청이 오면 스레드 풀에서 스레드를 할당한다. 스레드는 자원이다.(스레드가 많으면 문맥 교환이 많이 발생하고 스케쥴링이 더 필요하고 메모리도 더 필요하다.) 이러한 스레드를 미리 일정수준 만들어 두는 것은 그만큼의 자원을 소모하고 있음을 의미한다. 스레드 풀에 존재하는 스레드의 수만큼 동시 처리가 가능하다. 각각의 스레드는 기본적으로 동기적으로 처리된다. IO가 발생하면 blocking 된다. 2. Reactive 구조 하나의 스레드가 multiplexing을 통해 다수의 사용자 요청을 처리한다. 스레드 풀이 없기 때문에 그만큼 자원 소모가 적다. 각각의 요청은 cpu 작업은 동기적으로 처리되고 io작업은 비동기 처리된다. cpu 작.. 2021. 12. 1.