이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 6386|회답: 3

[출처] .NET 코어 고성능 큐 채널이 사용됩니다

[링크 복사]
2023-5-8 22:11:01에 게시됨 | | | |
System.Threading.Channels는.NET Core 3.0 이후 도입된 새로운 컬렉션 유형메시지 대기열, 데이터 생성 및 소비에 사용할 수 있으며, 공개 작성자 및 리더 API는 메시지의 생성자와 소비자에 대응하여 채널을 더 간결하고 사용하기 쉽게 만듭니다.

.NET/C#은 BlockingCollection 백그라운드 작업 큐를 기반으로 합니다
https://www.itsvse.com/thread-9528-1-1.html


System.Threading.Channels 라이브러리:하이퍼링크 로그인이 보입니다.
채널<T> 클래스:하이퍼링크 로그인이 보입니다.

채널 유형

마이크로소프트는 두 가지 유형의 채널을 제공합니다. 하나는 용량이 제한된 바운드 채널이고, 다른 하나는 무제한 용량을 가진 언바운드 채널입니다.

용량이 제한된 채널을 만드세요:채널.크리에이트바운드<string>(100);
무제한 용량의 채널을 생성하세요:Channel.CreateUnbounded<string>();

무제한 채널 생성

채널을 생성할 때, ChannelOptions의 SingleWriter와 SingleReader를 설정하여 채널이 false로 설정되었을 때 단일 생산자와 소비자를 지정할 수 있습니다. SingleWriter = true가 설정되면 한 명의 생산자만 동시에 데이터를 쓰는 것이 제한되며, SingleReader = true도 동일합니다.


다음 코드로 세 개의 프로듀서 스레드와 하나의 컨퍼먼스 스레드를 열어보세요:



소비자는 데이터가 읽힐 때까지 WaitToReadAsync를 사용합니다. 소비자는 데이터가 공개된 후에야 읽으려 합니다.


위 코드에서 소비자는 데이터를 하나씩 읽어 작업을 수행하고, 어떻게 만들었는지대량 소비자 소비 데이터가공 과정은 어때?

다음 코드로 새로운 ChannelReaderExtensions 확장 프로그램을 생성하세요:


소비자 코드를 다음과 같이 조정하세요:



(끝)




이전의:ASP.NET 코어 (18) 간단한 OutputCache 출력 캐시를 커스터마이즈하기
다음:[실제 전투]. NET/C# 오프라인 IP 주소(홈) 위치 라이브러리
2023-5-8 22:50:27에 게시됨 |
배우기 위해 배우세요
2023-5-12 10:07:46에 게시됨 |
배우기 위해 배우세요
2023-5-16 17:21:37에 게시됨 |
배우기 위해 배우세요
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com