728x90
ConcurrentQueue<T>
- .NET의 ‘System.Collections.Concurrent’ 네임스페이스에 속한 스레드 안전한 큐이다.
- 여러 스레드가 동시에 안전하게 요소를 추가하고 제거할 수 있도록 설계되었다. 이는 멀티스레딩 환경에서 데이터 구조를 안전하게 사용할 수 있게 해준다.
주요 특징
- 스레드 안정성(Thread-Safety)
- 스레드 안전하게 설계되어 여러 스레드가 동시에 큐에 접근하여 요소를 추가하거나 제거할 수 있다.
- FIFO(First-In-First-Out)
- 선입선출 방식으로 작동한다.
- 비차단(Non-Blocking)
- 대부분의 작업에서 잠금(lock)을 사용하지 않으며, 따라서 성능이 매우 좋다.
주요 메서드
- Enqueue(T item)
- 큐의 끝에 요소를 추가한다.
- TryDequeue(out T result)
- 큐의 시작 부분에서 요소를 제거하고, 제거된 요소를 result에 할당한다.
- 성공하면 true, 큐가 비어 있으면 false를 반환한다.
- TryPeek(out T result)
- 큐의 시작 부분에서 요소를 제거하지 않고, 해당 요소를 result에 할당한다.
- 성공하면 true, 큐가 비어 있으면 false를 반환한다.
- IsEmpty
- 큐가 비어 있는지 여부를 확인한다.
- 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 |