Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 221|Válasz: 1

[Forrás] . PriorityQueue prioritási sorba a NET6-ban

[Linket másol]
Közzétéve: 2025-10-20 10:02:53 | | | |
A .NET 6 új gyűjteménytípust vezet be, a PriorityQueue-t, amely, ahogy a neve is mutatja, prioritási támogatást ad a hagyományos Queue fölé. Megjegyzés: ŐNem szál-biztonságos, figyelned kell a menetbiztonság kérdéseire.

Forrás:A hiperlink bejelentkezés látható.

Induláshoz

Nézzünk meg egy egyszerű példát a használatra:
Példa kimenet:



Láthatod, hogy a kimenet sorrendje ellentétes a hozzáadott sorrenddel, a PriorityQueue a legkisebb prioritással kezdődik a sorrend levonásakor, minél kisebb az érték, annál magasabb az elsőbbség, annál magasabb az első, annál magasabb a kimenet, ha először a maximális kimenetet akarjuk, rendben van, a válasz igen, de meg kell határoznunk a saját prioritás-összehasonlító szabályait, lásd a következő példát, lásd a következő példát

Jelenetek

Az automatikus rendezéssel prioritással fontolóra vehetjük a PriorityQueue használatát, amikor automatikus rendezésre van szükségünk

Üzenetsorban

A PriorityQueue segítségével megvalósítható egy prioritási üzenetsor, amely lehetővé teszi a felhasználók számára, hogy meghatározza az üzenet prioritását üzenet küldésekor, és az is prioritást kap a fogyasztás során.

A fenti példában alapértelmezés szerint egy int típust jelölünk meg prioritásként, és néhány üzenetet összeolvasztunk a sorba, de gyakran sok üzenet van, és előfordulhatnak olyan helyzetek, amelyek ugyanazt az elsőbbséget képviselik, amit használhatunkIdő és Intel szövetségi prioritáskéntA következő példára hivatkozhatsz:
A kimenet példája a következő:



A fenti eredményekből látható, hogy prioritás esetén először kevesebb idővel dolgozzuk fel az üzeneteket, vagy testreszabhatjuk a rendezési módszert saját igényeink szerint, és testreszabhatjuk az elsőbbségi összehasonlító logikát.

Rang

A PriorityQueue számos rangsorolási alkalmazásban is használható, például a diákok teljesítményének rangsorolásában

Nézze meg az alábbi példakódot:
A fenti lista a jegyek listája, csak írj néhány tesztadatot, a PriorityQueue UnorderedItems funkcióján keresztül megkaphatjuk az adatokat a rendezés előtt, és ez az a sorrend is, ahogyan csatlakozunk a sorhoz (Enqueue), az alapértelmezett összehasonlítás a kis első, vagyis az alacsony pontszám az első, majd a legnagyobbtól a legkisebbig válogatni kell, és testreszabni kell az összehasonlító módszert.

A fenti High2LowComparer egy egyedi összehasonlítás, amely valójában az összehasonlító eredmény inverse, és a kód a következő:
A fenti kimenet a következő:



Több

Van egy zset(sortedSet) típusú adat a Redisben, amely hasonló dolgokat tud csinálni, de még mindig vannak különbségek a zset és a PriorityQueue között, a zset egy halmaz, egy gyűjtemény, amely automatikusan dednuklikál, míg a PriorityQueue továbbra is egy sor, nem dedpîlikálják, a zset módosíthatja a megfelelő elem prioritását (pontszámát), de a PriorityQueue Jelenleg nem támogatott egy elem megfelelő prioritásának módosítása

A PriorityQueue megoldhat néhány problémánkat, de van néhány dolgot, amit érdemes szem előtt tartani használatkor:

  • Először is, ha az elsőbbség ugyanaz, a kimenet rendje eltérő lehet, amit a belső megvalósítási algoritmus határoz meg, és a sorrend nem szigorúan garantálható
  • A PriorityQueue nem szál-biztonságos, és a szálbiztonsági problémákat meg kell jegyezni
  • A PriorityQueue Peek metódusa csak a következő elemet kéri a sorban, de nem távolítja el a sorból
(Vége)




Előző:Douyin Mall crawler elemzés 6 isten pozicionálása, kockázatkezelési elemzés, most 7 istennek kellene lennie X-Perseus
Következő:Linkek EBPF-hez kapcsolódó tudáshoz
 Háziúr| Közzétéve: 2025-10-20, 10:09:05 |
Tipikus alkalmazási forgatókönyvek

Kórházi sürgősségi hívás, feladatidőzítési rendszer, például: prioritásos hívás kritikusan betegek számára, a kód a következő:
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com