• Lock & ReentrantLock

    Lock 멀티쓰레드, 동시성 프로그래밍에서는 가장 중요한 개념은 Thread와 Lock Lock 하나의 자원에 대해 여러 Thread가 동시에 접근하는 것을 도구 Synchronized, 동기화하거나, 아니면 접근 자체를 직렬화한다고 표현함 멀티쓰레드 환경에서는 여러 Thread가 Heap 메모리에 있는 객체나 자원을 접근할 때 동기화를 통해 접근에 제약을 두어야함 여러 Thread가 어떤 순서로, 어떻게 동작할지 보장할 수...


  • BlockingQueue 구현체 정리

    해당 내용은 BlockingQueue 인터페이스를 구현한 클래스에 대한 내용을 다루고자 함 모두 Javadoc을 보고 작성 BlockingQueue 구현 클래스들 각 구현체들은 인터페이스 javadoc에 다 있음 LinkedBlockingQueue ArrayBlockingQueue PriorityBlockingQueue SynchronousQueue DelayQueue LinkedTransferQueue LinkedBlockingDeque LinkedBlockingQueue 링크 FIFO 순서를 가지며, linked nodes을 기반 Queue의 head는 오래된 데이터, queue에서 꺼낼 때는 head값을 가져옴 Queue의 tail은 최신...


  • BlockingQueue 인터페이스 정리

    해당 내용은 BlockingQueue 인터페이스 javadoc을 보고 작성함 링크 BlockingQueue java.util.concurrent 패키지에 있는 인터페이스로 Thread safe한 Queue로 다음과 같은 구현체가 있음 ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue SynchronousQueue DelayQueue TransferQueue 여기서 각 구현체의 특성을 다 다루지는 않고, BlockingQueue 인터페이스에 대한 내용을 다룸 궁극적으로 인터페이스에 정의된 함수이 BlockingQueue의 핵심기능이니깐.. BlockingQueue 특징 null을 허용하지 않음, null값을...


  • BlockingQueue VS ConcurrentLinkedQueue

    BlockingQueue VS ConcurrentLinkedQueue 논문-Simple, fast, and practical non-blocking and blocking concurrent queue algorithms java.util.concurrent 패키지에 Queue에 대한 클래스 중 Thread Safe한 클래스가 있는데, 왜 BlockingQueue 중 BlockingLinkedQueue를 사용했는지에 대해 정리 ConcurrentLinkedQueue non-blocking lock-free queues. BlockingQueue Blocking & Lock Queue 일단 Blocking을 선택한 이유? LinkedBlockingQueue는 생성자의 인자에 큐의 용량 capacity 를...


  • [Data-Intensive] Ch7. 트랜잭션 (Transaction)

    트랜잭션 ‘데이터 중심 애플리케이션 설계’를 읽고 정리하고자함 정리 트랜잭션 애플리케이션이 어떤 동시성 문제와 어떤 종류의 하드웨어와 소프트웨어 결함이 존재하지 않는 것처럼 동작할 수 있게 도와주는 추상층 많은 종류의 오류가 간단한 트랜잭션 어버트로 줄어들고 애플리케이션은 재시도만 하면 됨 트랜잭션은 접근 패턴이 복잡할 때에 상상할 수 있는 잠재적인 오류 상황의 수를 줄일...