I daglig utveckling kan vi använda köer, som är en lagringsstruktur som kan uppnå "först in, först ut".
Tillämpningsscenarier: skriva loggar, skicka mejl, etc
Om vi behöver registrera gränssnittsloggen för varje användare som begär vår data, behöver vi inte skriva en logg varje gång användaren begär den, vi kan lägga logginnehållet i kön och låta andra trådar köra det, så att applikationens effektivitet inte påverkas.
En annan fördel är att om man lägger till data i kön vid samtidighet, med en enda tråd för att köra köns data, kan man undvika många undantag, om samtidighet (multitrådat), åtkomst till samma fysiska fil orsakar undantag. (förbehållet tillgänglighet)
Kön universell metod:
Detta är en abstrakt klass, och du behöver ärva denna abstraktionsklass och implementera metoden Execute abstraction. Eftersom jag inte vet vilken typ av data du vill bearbeta används generiska data här, det vill säga, Entitet är av strängtyp, metodparametrar är strängtyp, och datan du bearbetar är strängtyp.
ConcurrentQueue trådsäker kö säkerställer att det inte finns några undantag i en flertrådad miljö.
ManualResetEvent för att styra trådens signal,Tidigare kollade vi kön efter data var några sekunder eller minutNu lägger vi till datan i kön och behöver bara skicka en signal!
Användning:
(Slut)
|