728x90
ConcurrentDictionary.TryAdd 메서드
- 새로운 키-값 쌍을 추가할 때 사용한다.
public bool TryAdd(TKey key, TValue value);
- key: 추가할 항목의 키이다.
- value: 추가할 항목의 값이다.
- 반환값: bool 타입의 값으로, 추가 작업이 성공했는지 여부를 나타낸다.
동작 방식
- TryAdd 메서드는 ConcurrentDictionary에 새로운 항목을 추가하려고 할 때, 해당 키가 이미 존재하는지 검사하고, 존재하지 않는 경우에만 항목을 추가한다.
- 키가 존재하지 않는 경우
- 키-값 쌍이 사전에 추가된다.
- TryAdd 메서드는 true를 반환한다.
- 키가 이미 존재하는 경우
- 기존 항목이 변경되지 않는다.
- TryAdd 메서드는 false를 반환한다.
- 키가 존재하지 않는 경우
주요 특징 및 주의점
- 스레드 안정성
- ConcurrentDictionary는 여러 스레드가 동시에 항목을 추가하거나 수정할 수 있는 상황에서도 안전하게 작동한다.
- 내부적으로 적절한 락킹 메커니즘을 사용하여 데이터 일관성을 보장한다.
- 원자성
- TryAdd 메서드는 원자적으로 실행된다. 즉, 다른 스레드가 동시에 사전에 항목을 추가하려고 해도 이 메서드는 항목이 성공적으로 추가되었는지 여부를 정확하게 판단할 수 있다.
- 성능
- ConcurrentDictionary는 동시성 시나리오에서 높은 성능을 제공한다. 단일 스레드에서의 Dictionary와 비교할 때 약간의 성능 오버헤드가 있을 수 있지만, 멀티스레드 환경에서의 안전성과 효율성을 보장한다.
728x90
'언어 > C#' 카테고리의 다른 글
델리게이트(Delegate) (0) | 2024.08.07 |
---|---|
ConcurrentDictionary.AddOrUpdate(value1, value2, (k,v) ⇒ value2) 메서드 (0) | 2024.08.06 |
Google.Protobuf IDeepClonealbe<T> (0) | 2024.08.06 |
Dictionary<TKey, TValue> (0) | 2024.08.06 |
확장 메서드(Extension Method) (0) | 2024.08.06 |