동시성 클린 코드 (Clean Code) - 5 : Concurrency 무엇과 언제를 분리하게 되면 곧 동시성을 구현할 수 있음을 의미하게 되는데, 어플리케이션의 구조와 효율이 좋아지고 시스템을 이해하기 수월하다는 장점을 가지고 있다. 동시성은 부하를 유발시킬 수 있다. 다양한 스레드가 Counter 클래스를 공유하고 있는 상태에서, getIncreasedCount() 를 호출한다고 가정했을 때 다음과 같은 결과를 받을 수 있다. 잘못된 결과를 낳을 수 있는 가... CLEAN CODE클린코드동시성CLEAN CODE 동시성 프로그래밍 Concurrent Programming 위 서버에서는 listen 상태로 클라이언트의 connect를 기다리고 있고, 클라이언트가 connect 되면 유저와 연결된 fd를 생성해 해당 파일에 read/write를 하고 있는데, 여기서 다른 추가적인 클라이언트가 있다면 특정 한 클라이언트는 서버가 다른 클라이언트와 관련된 instruction들을 수행하고 있다면 무작정 기다려야하는 상황이 발생한다. 이 경우 주의점은 fork 후 동... 동시성웹서버동시성프로그래밍동시성 [자바] ReentrantReadWriteLock lock(), tryLock() 훑어보기 자바 5버전의 concurrent 패키지가 나오기 전에는 synchronized block 을 이용하여 다음과 같은 방식으로 락을 거는 방식을 사용했었다. 1) lock 을 걸지 않았을 경우 2) synchronized lock 을 걸었을 경우 3) synchronized lock 의 한계 2) ReentrantReadWriteLock.WriteLock 의 lock() 사용 E failed ... reentrantlock동시성자바trylock스레드reentrantlock
클린 코드 (Clean Code) - 5 : Concurrency 무엇과 언제를 분리하게 되면 곧 동시성을 구현할 수 있음을 의미하게 되는데, 어플리케이션의 구조와 효율이 좋아지고 시스템을 이해하기 수월하다는 장점을 가지고 있다. 동시성은 부하를 유발시킬 수 있다. 다양한 스레드가 Counter 클래스를 공유하고 있는 상태에서, getIncreasedCount() 를 호출한다고 가정했을 때 다음과 같은 결과를 받을 수 있다. 잘못된 결과를 낳을 수 있는 가... CLEAN CODE클린코드동시성CLEAN CODE 동시성 프로그래밍 Concurrent Programming 위 서버에서는 listen 상태로 클라이언트의 connect를 기다리고 있고, 클라이언트가 connect 되면 유저와 연결된 fd를 생성해 해당 파일에 read/write를 하고 있는데, 여기서 다른 추가적인 클라이언트가 있다면 특정 한 클라이언트는 서버가 다른 클라이언트와 관련된 instruction들을 수행하고 있다면 무작정 기다려야하는 상황이 발생한다. 이 경우 주의점은 fork 후 동... 동시성웹서버동시성프로그래밍동시성 [자바] ReentrantReadWriteLock lock(), tryLock() 훑어보기 자바 5버전의 concurrent 패키지가 나오기 전에는 synchronized block 을 이용하여 다음과 같은 방식으로 락을 거는 방식을 사용했었다. 1) lock 을 걸지 않았을 경우 2) synchronized lock 을 걸었을 경우 3) synchronized lock 의 한계 2) ReentrantReadWriteLock.WriteLock 의 lock() 사용 E failed ... reentrantlock동시성자바trylock스레드reentrantlock