ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • java.util.concurrent
    Dev Language/JAVA 2017. 1. 13. 09:34

    출처 : 7가지 동시성모델


    ReentrantLock과 java.util.concurrent.atomic을 이용하면 스레드가 다음과 같은 일들을 수행 할 수 있기 때문에, 내재된 잠금잠기가 안고 있는 제한을 극복할 수 있다. 

      • 잠금장치를 얻고자 기다리는 과정을 가로챌 수 있다. 
      • 잠금장치를 기다리는 동안 타임아웃이 발생할 수 있다. 
      • 잠금장치를 얻고 반납하는 동작이 임의의 순서로 일어날 수 있다. 
      • 임의의 조건이 참이 되는 것을 기다리기 위해 조건 변수를 사용할 수 있다. 
      • 원자 변수를 이용해서 잠금장치를 사용하는 것을 피할 수 있다. 

    Java.util.concurrent 패키지에서 제공하는 도구들을 이용해 동시성 코드르 쉽게 만들 수 있을 뿐만 아니라 프로그램을 더 안전하고 효과적으로 만들 수 있다. 

      • 스레드를 직접 만드는 대신 스레드 풀을 이용한다. 
      • CopyOnWriteArrayList를 이용해 리스너 관리를 더 쉽고 효과적으로 만든다. 
      • 생산자와 소비자가 ArrayBlockingQueue를 이용해 더 효과적으로 의사소통을 한다. 
      • ConcurrentHashMap을 이용해 맵에 대한 동시적인 접근을 지원한다. 

    추가서적 : brain Goetz. "Java Concurrency in Practice", Addison-Wesley, Reading, MA, 2006

    댓글

Written by Skymaker.