728x90

ConcurrentDictionary 3

ConcurrentDictionary.AddOrUpdate(value1, value2, (k,v) ⇒ value2) 메서드

ConcurrentDictionary.AddOrUpdate(value1, value2, (k,v) ⇒ value2) 메서드AddOrUpdate는 키가 존재하지 않으면 새 항목을 추가하고, 이미 존재하면 값을 업데이트하는 메서드이다.value1추가하려는 키이다value2키가 존재하지 않을 때 추가될 새로운 값이다.(k, v) ⇒ value2키가 이미 존재할 때 실행되는 람다 함수이다.동작만약 value1 키가 딕셔너리에 없다면, (value1, value2) 쌍을 새로 추가한다.만약 value1 키가 이미 존재한다면, 해당 키의 값을 value2로 업데이트 한다.

언어/C# 2024.08.06

ConcurrentDictionary.TryAdd 메서드

ConcurrentDictionary.TryAdd 메서드새로운 키-값 쌍을 추가할 때 사용한다.public bool TryAdd(TKey key, TValue value);key: 추가할 항목의 키이다.value: 추가할 항목의 값이다.반환값: bool 타입의 값으로, 추가 작업이 성공했는지 여부를 나타낸다.동작 방식TryAdd 메서드는 ConcurrentDictionary에 새로운 항목을 추가하려고 할 때, 해당 키가 이미 존재하는지 검사하고, 존재하지 않는 경우에만 항목을 추가한다.키가 존재하지 않는 경우키-값 쌍이 사전에 추가된다.TryAdd 메서드는 true를 반환한다.키가 이미 존재하는 경우기존 항목이 변경되지 않는다.TryAdd 메서드는 false를 반환한다.주요 특징 및 주의점스레드 안정성C..

언어/C# 2024.08.06

ConcurrentDictionary<TKey, TValue>

ConcurrentDictionary여러 개의 스레드에서 동시에 액세스 할 수 있는 키/값 쌍의 스레드로부터 안전한 컬렉션이다.모든 작업은 원자성이며 클래스의 다른 모든 작업과 관련하여 스레드로부터 안전하다.ConcurrentDictionary 유일한 예외는 대리자, 및 GetOrAdd를 허용하는 메서드이다. AddOrUpdate 사전에 대한 수정 및 쓰기 작업의 경우는 ConcurrentDictionary 세분화된 잠금을 사용하여 스레드 안전을 보장한다.(사전에 대한 읽기 작업은 잠금이 ㅇ벗는 방식으로 수행된다.) 그러나 이러한 메서드에 대한 대리자는 잠금에서 알 수 없는 코드를 실행하여 발생할 수 있는 문제를 방지하기 위해 잠금 외부에서 호출된다. 따라서 이러한 대리자가 실행하는 코드에는 작업의 원자..

언어/C# 2024.08.01
728x90