언어/C#

ConcurrentDictionary.TryAdd 메서드

에린_1 2024. 8. 6. 09:44
728x90

ConcurrentDictionary.TryAdd 메서드

  • 새로운 키-값 쌍을 추가할 때 사용한다.
public bool TryAdd(TKey key, TValue value);
  • key: 추가할 항목의 키이다.
  • value: 추가할 항목의 값이다.
  • 반환값: bool 타입의 값으로, 추가 작업이 성공했는지 여부를 나타낸다.

동작 방식

  • TryAdd 메서드는 ConcurrentDictionary에 새로운 항목을 추가하려고 할 때, 해당 키가 이미 존재하는지 검사하고, 존재하지 않는 경우에만 항목을 추가한다.
    1. 키가 존재하지 않는 경우
      • 키-값 쌍이 사전에 추가된다.
      • TryAdd 메서드는 true를 반환한다.
    2. 키가 이미 존재하는 경우
      • 기존 항목이 변경되지 않는다.
      • TryAdd 메서드는 false를 반환한다.

주요 특징 및 주의점

  • 스레드 안정성
    • ConcurrentDictionary는 여러 스레드가 동시에 항목을 추가하거나 수정할 수 있는 상황에서도 안전하게 작동한다.
    • 내부적으로 적절한 락킹 메커니즘을 사용하여 데이터 일관성을 보장한다.
  • 원자성
    • TryAdd 메서드는 원자적으로 실행된다. 즉, 다른 스레드가 동시에 사전에 항목을 추가하려고 해도 이 메서드는 항목이 성공적으로 추가되었는지 여부를 정확하게 판단할 수 있다.
  • 성능
    • ConcurrentDictionary는 동시성 시나리오에서 높은 성능을 제공한다. 단일 스레드에서의 Dictionary와 비교할 때 약간의 성능 오버헤드가 있을 수 있지만, 멀티스레드 환경에서의 안전성과 효율성을 보장한다.
728x90