Un semaforo è un concetto di programmazione che viene spesso utilizzato per risolvere problemi multi-threading. La mia domanda alla comunità: Cos'è un semaforo e come lo usi?
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 …
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?
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 …
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 != …
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 { …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.