언어/C#

ConcurrentQueue<T>

에린_1 2024. 7. 31. 09:52
728x90

ConcurrentQueue<T>

  • .NET의 ‘System.Collections.Concurrent’ 네임스페이스에 속한 스레드 안전한 큐이다.
  • 여러 스레드가 동시에 안전하게 요소를 추가하고 제거할 수 있도록 설계되었다. 이는 멀티스레딩 환경에서 데이터 구조를 안전하게 사용할 수 있게 해준다.

주요 특징

  1. 스레드 안정성(Thread-Safety)
    • 스레드 안전하게 설계되어 여러 스레드가 동시에 큐에 접근하여 요소를 추가하거나 제거할 수 있다.
  2. FIFO(First-In-First-Out)
    • 선입선출 방식으로 작동한다.
  3. 비차단(Non-Blocking)
    • 대부분의 작업에서 잠금(lock)을 사용하지 않으며, 따라서 성능이 매우 좋다.

주요 메서드

  1. Enqueue(T item)
    • 큐의 끝에 요소를 추가한다.
  2. TryDequeue(out T result)
    • 큐의 시작 부분에서 요소를 제거하고, 제거된 요소를 result에 할당한다.
    • 성공하면 true, 큐가 비어 있으면 false를 반환한다.
  3. TryPeek(out T result)
    • 큐의 시작 부분에서 요소를 제거하지 않고, 해당 요소를 result에 할당한다.
    • 성공하면 true, 큐가 비어 있으면 false를 반환한다.
  4. IsEmpty
    • 큐가 비어 있는지 여부를 확인한다.
  5. Count
    • 큐에 있는 요소의 개수를 반환한다. 다만, 이 속성은 즉시 일관성을 보장하지 않는다.
    • 다른 스레드가 요소를 추가하거나 제거하는 동안 값이 변경될 수 있다.
728x90

'언어 > C#' 카테고리의 다른 글

ArraySegment  (0) 2024.07.31
Invoke & BeginInvoke  (0) 2024.07.31
Dispose  (0) 2024.07.31
Using  (0) 2024.07.31
Out 매개변수 한정자  (0) 2024.07.31