Domande taggate «semaphore»

Un semaforo è una primitiva di sincronizzazione che tiene traccia del numero di risorse disponibili su un numero limitato.






8
Esiste un Mutex in Java?
Esiste un oggetto Mutex in java o un modo per crearne uno? Lo chiedo perché un oggetto Semaphore inizializzato con 1 permesso non mi aiuta. Pensa a questo caso: try { semaphore.acquire(); //do stuff semaphore.release(); } catch (Exception e) { semaphore.release(); } se si verifica un'eccezione alla prima acquisizione, il …



5
Come faccio a scegliere tra Semaphore e SemaphoreSlim?
Le loro interfacce pubbliche sembrano simili. La documentazione afferma che SemaphoreSlim è un'alternativa leggera e non utilizza i semafori del kernel di Windows. Questa risorsa afferma che SemaphoreSlim è molto più veloce. In quali situazioni il SemaphoreSlim ha più senso rispetto al Semaphore e viceversa?

7
Semaforo - Qual è l'uso del conteggio iniziale?
http://msdn.microsoft.com/en-us/library/system.threading.semaphoreslim.aspx Per creare un semaforo, devo fornire un conteggio iniziale e un conteggio massimo. MSDN afferma che un conteggio iniziale è: Il numero iniziale di richieste per il semaforo che possono essere concesse contemporaneamente. Mentre afferma che il conteggio massimo è Il numero massimo di richieste per il semaforo che …

3
Necessità di comprendere l'utilizzo di SemaphoreSlim
Ecco il codice che ho ma non capisco cosa SemaphoreSlimstia facendo. async Task WorkerMainAsync() { SemaphoreSlim ss = new SemaphoreSlim(10); List<Task> trackedTasks = new List<Task>(); while (DoMore()) { await ss.WaitAsync(); trackedTasks.Add(Task.Run(() => { DoPollingThenWorkAsync(); ss.Release(); })); } await Task.WhenAll(trackedTasks); } void DoPollingThenWorkAsync() { var msg = Poll(); if (msg != …

6
CountDownLatch vs. Semaphore
C'è qualche vantaggio nell'usare java.util.concurrent.CountdownLatch invece di java.util.concurrent.Semaphore ? Per quanto ne so, i seguenti frammenti sono quasi equivalenti: 1. Semaforo final Semaphore sem = new Semaphore(0); for (int i = 0; i < num_threads; ++ i) { Thread t = new Thread() { public void run() { try { …
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.