ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Array Deque
    CS 지식/자료구조 2021. 1. 29. 17:37
    반응형

    Array Deque

     

    • AbstractCollection 클래스와 Deque, Cloneable, Serializable 인터페이스를 상속받는 클래스

    • 특징

      • 사이즈 제한이 없다. ( -> 입력받는 크기에 따라 resize 된다.)

      • 외부 동기화가 없는 상태에서, 멀티 쓰레드에서 동시 엑세스가 안된다. == Thread Safe를 보장하지 않는다.)

      • 요소로 null을 저장할 수 없다.

      • Stack과 LinkedList보다 빠른 속도

    • Thread-safe

      • 멀티 스레드 프로그래밍에서 일반적으로 어떤 메소드나 변수, 또는 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램 실행에 문제 없음

      • 하나의 메소드가 한 스레드로부터 호출되어 실행 중일 때, 다른 스레드가 해당 메소드를 호출해서 동시에 함께 실행해도 각 스레드의 메소드 수행 결과가 올바르게 나옴

      • Thread-safe를 지키기 위한 방법

        • Re-entrancy

          • 어떤 메소드가 한 스레드에서 호출되어 실행 중일 때, 다른 스레드가 해당 메소드를 호출해도 결과가 각각에게 올바르게 주어져야함

        • Thread-local storage

          • 공유 자원의 사용을 최대한 줄여 각 스레드에서만 접근 가능한 저장소들을 사용함으로써 동시 접근을 막는다. ~> 동기화 방법과 관련됨, 공유상태를 피할 수 없는 경우 사용
        • Mutual exclusion

          • 공유 자원을 꼭 사용해야하는 경우 해당 자원 접근을 세마포어나 뮤텍스 등의 Lock으로 통제
        • Atomic operation

          • 공유 자원에 접근할 때 Atomic한 연산을 이용하거나 Atomic하게 정의된 접근 방법을 사용해서 상호 배제를 구현

     

    Reference

    docs.oracle.com/javase/7/docs/api/java/util/ArrayDeque.html

    gompangs.tistory.com/entry/OS-Thread-Safe%EB%9E%80

    반응형

    'CS 지식 > 자료구조' 카테고리의 다른 글

    HashMap과 해시 충돌  (0) 2021.01.14
    Tree  (0) 2021.01.14
    Array vs LinkedList  (0) 2021.01.14

    댓글

Designed by Tistory.