Ich möchte Warteschlange erstellen während maximale Größe mit Semaphor definieren.Warum brauche ich Sperren mit Semaphor
enque Artikel hinzufügen und deque werden Artikel
public void Enque(T item)
{
semaphore.WaitOne();
privateQueue.Enqueue(item);
löschen Während ähnliche Situationen googeln ich herausgefunden, dass manchmal Schlösser wie diese
semaphore.WaitOne();
lock(lock)
privateQueue.Enqueue(item);
verwendet Warum müssen wir Schlösser hinzufügen mit Semaphor? Danke
Schreiben thread-sicheren Code ist * schwer *. Einige großartige Bücher zum Thema: "Concurrent Programming unter Windows", "Java Concurrency in Practice" (überraschend relevant für C# -Entwickler, sofern Sie wissen, wie man die APIs anpasst) –
Was ist die Initialisierung von Semaphore? Wenn es 'new Semaphore (0, 1)' ist, müssen Sie möglicherweise keine Sperre verwenden, da die Verwendung eines solchen Semaphors nur einen Threadzugriff auf die Ressource zulässt. –