Preguntas etiquetadas con thread-safety

Un fragmento de código es seguro para subprocesos si solo manipula las estructuras de datos de una manera que permita la ejecución consistente de este código por varios subprocesos. Un código puede ser seguro para subprocesos, condicionalmente seguro (se requiere exclusión mutua) o inseguro (solo puede ser utilizado de forma segura por un subproceso).



8
¿Cómo funciona exactamente el bloqueo?
Veo que para usar objetos que no son seguros para subprocesos envolvemos el código con un bloqueo como este: private static readonly Object obj = new Object(); lock (obj) { // thread unsafe code } Entonces, ¿qué sucede cuando varios subprocesos acceden al mismo código (supongamos que se ejecuta en …




7
Queue.Queue vs. collections.deque
Necesito una cola en la que múltiples hilos puedan poner cosas, y múltiples hilos pueden leer. Python tiene al menos dos clases de cola, Queue.Queue y collections.deque, y la primera aparentemente usa la segunda internamente. Ambos afirman ser seguros para subprocesos en la documentación. Sin embargo, los documentos de la …



5
¿Es seguro iterar el hilo de valores de ConcurrentHashMap?
En javadoc para ConcurrentHashMap está lo siguiente: Las operaciones de recuperación (incluida la obtención) generalmente no se bloquean, por lo que pueden superponerse con las operaciones de actualización (incluida la colocación y eliminación). Las recuperaciones reflejan los resultados de las operaciones de actualización completadas más recientemente en espera de su …

5
HashSet <T> concurrente en .NET Framework?
Tengo la siguiente clase. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); } Necesito cambiar el campo "Datos" de diferentes subprocesos, por lo que me gustaría obtener algunas opiniones sobre mi implementación actual segura para subprocesos. class Test{ public HashSet&lt;string&gt; Data = new HashSet&lt;string&gt;(); public void Add(string Val){ lock(Data) Data.Add(Val); …

5
C # hilo seguro rápido (est) contador
¿Cuál es la forma de obtener un contador seguro para subprocesos en C # con el mejor rendimiento posible? Esto es tan simple como se pone: public static long GetNextValue() { long result; lock (LOCK) { result = COUNTER++; } return result; } ¿Pero hay alternativas más rápidas?

5
¿Son seguros los hilos estáticos no sincronizados si no modifican las variables de clase estática?
Me preguntaba si tiene un método estático que no esté sincronizado, pero que no modifique ninguna variable estática, ¿es seguro para subprocesos? ¿Qué pasa si el método crea variables locales dentro de él? Por ejemplo, ¿el siguiente código es seguro para subprocesos? public static String[] makeStringArray( String a, String b …

8
¿Es seguro el hilo! = Check?
Sé que las operaciones compuestas, como i++no son seguras para subprocesos, ya que implican múltiples operaciones. ¿Pero verificar la referencia consigo mismo es una operación segura para subprocesos? a != a //is this thread-safe Traté de programar esto y usar múltiples hilos pero no falló. Supongo que no podría simular …


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.