concurrency
-
병행성(Concurrency)을 위한 CountDownLatch자바(Java) 강의 2019. 8. 22. 13:39
CountDownLatch우리가 사용하는 고급 언어는 대부분 Concurrency(병행성)에 관련된 API를 제공한다. 자바도 마찬가지로 atomic, volitile, semaphore등 기본적인 병행성 관련 메커니즘에서 CyclicBarrier, CountDownLatch등의 고급기능까지 제공한다. 그 중 이 포스트에서는 CountDownLatch에 대해 알아보도록 한다. CountDownLatch는 언제 쓸까? 쓰레드를 N개 실행했을 때, 일정 개수의 쓰레드가 모두 끝날 때 까지 기다려야지만 다음으로 진행할 수 있거나 다른 쓰레드를 실행시킬 수 있는 경우 사용한다. 예를들어서 리스트에 어떤 자료구조가 있고, 각 자료구조를 병렬로 처리한 후 배치(batch)로 데이터베이스를 업데이트 한다거나 다른 시..
-
자바 Collection Iterator - ConcurrentModificationException자바(Java) 강의 2019. 5. 5. 10:08
자바에서 Iterator를 사용해 보았다면, 한번쯤은 ConcurrentModificationException을 봤을 것이다. 이번 포스트에서는 ConcurrentModificationException은 어떤 경우에 발생하는지, ConcurrentModificationException을 해결하는 다양한 코딩 방법에 대해 설명하도록 하겠다.목표ConcurrentModificationExceptionfor( ; ; )를 이용한 방법CopyOnWriteArray를 이용한 방법나중에 하기Java 8 : removeIf와 lambda expression을 이용한 방법ConcurrentModificationExceptionConcurrentModificationException은 언제 발생할까? 이 예외는 어떤 쓰..