Preguntas etiquetadas con semaphore

Un semáforo es una primitiva de sincronización que rastrea cuántos de un número limitado de recursos están disponibles.









5
¿Cómo elijo entre Semaphore y SemaphoreSlim?
Sus interfaces públicas parecen similares. los documentación indica que SemaphoreSlim es una alternativa ligera y no usa semáforos del Kernel de Windows. Este recurso afirma que SemaphoreSlim es mucho más rápido. ¿En qué situaciones el SemaphoreSlim tiene más sentido que el Semaphore y viceversa?

6
CountDownLatch vs.Semaphore
¿Hay alguna ventaja de usar java.util.concurrent.CountdownLatch en vez de java.util.concurrent.Semaphore ? Por lo que puedo decir, los siguientes fragmentos son casi equivalentes: 1. Semáforo final Semaphore sem = new Semaphore(0); for (int i = 0; i < num_threads; ++ i) { Thread t = new Thread() { public void run() …

7
Semáforo: ¿para qué sirve el recuento inicial?
http://msdn.microsoft.com/en-us/library/system.threading.semaphoreslim.aspx Para crear un semáforo, necesito proporcionar un recuento inicial y un recuento máximo. MSDN indica que un recuento inicial es: El número inicial de solicitudes para el semáforo que se pueden otorgar al mismo tiempo. Si bien establece que el recuento máximo es El número máximo de solicitudes para …

3
Necesito comprender el uso de SemaphoreSlim
Aquí está el código que tengo pero no entiendo qué SemaphoreSlimestá haciendo. 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 …
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.