Computer >> 컴퓨터 >  >> 프로그램 작성 >> C#

C#의 스레드 안전 동시 수집

<시간/>

.NET Framework 4는 System.Collections.Concurrent 네임스페이스를 가져왔습니다. 여기에는 스레드로부터 안전하고 확장 가능한 여러 컬렉션 클래스가 있습니다. 이러한 컬렉션은 한 번에 여러 스레드에서 액세스할 수 있으므로 동시 컬렉션이라고 합니다.

다음은 C#의 동시 모음입니다 −

Sr.No 유형 및 설명
1 차단 수집
모든 유형에 대한 경계 및 차단 기능.
2 동시 사전
키-값 쌍 사전의 스레드 안전 구현.
3 동시 대기열
FIFO(선입선출) 대기열의 스레드로부터 안전한 구현입니다.
4 동시 스택
LIFO(후입선출) 스택의 스레드 안전 구현.
5 동시백
정렬되지 않은 요소 컬렉션의 스레드로부터 안전한 구현입니다.
6 IProducerConsumerCollection
BlockingCollection에서 사용하기 위해 유형이 구현해야 하는 인터페이스

스레드로부터 안전한 LIFO(Last In First Out) 컬렉션인 ConcurrentStack을 사용하는 방법을 살펴보겠습니다.

ConcurrentStack을 생성합니다.

ConcurrentStack<int> s = new ConcurrentStack<int>();

요소 추가

s.Push(1);
s.Push(2);
s.Push(3);
s.Push(4);
s.Push(5);
s.Push(6);

예를 들어 보겠습니다.

예시

using System;
using System.Collections.Concurrent;

class Demo{
   static void Main (){
      ConcurrentStack s = new ConcurrentStack();

      s.Push(50);
      s.Push(100);
      s.Push(150);
      s.Push(200);
      s.Push(250);
      s.Push(300);

      if (s.IsEmpty){
         Console.WriteLine("The stack is empty!");
      }

      else {
         Console.WriteLine("The stack isn't empty");
      }
   }
}