Articles of concurrencia

¿Cuál es el estado de la progtwigción multinúcleo en Haskell?

¿Cuál es el estado de la progtwigción multinúcleo en Haskell? ¿Qué proyectos, herramientas y bibliotecas están disponibles ahora? ¿Qué informes de experiencia ha habido?

¿Cuál es el problema de simultaneidad más frecuente que has encontrado en Java?

Esta es una encuesta de tipo sobre problemas comunes de simultaneidad en Java. Un ejemplo podría ser el estancamiento clásico o la condición de carrera o quizás EDT enhebrar errores en Swing. Me interesan tanto los problemas posibles como los problemas más comunes. Por lo tanto, deje una respuesta específica de un error de simultaneidad […]

Posible pérdida de memoria en ConcurrentBag?

He estado leyendo las nuevas colecciones concurrentes y, especialmente, el ConcurrentBag me llamó la atención. Dado que el ConcurrentBag contiene internamente un conjunto local en cada subproceso individual que lo usa para realizar un seguimiento de los elementos, esto significa que cuando el subproceso se sale del scope, seguirá siendo referenciado en la memoria por […]

¿Por qué java.util.concurrent.ArrayBlockingQueue usa ‘while’ loops en lugar de ‘if’ alrededor de llamadas a await ()?

He estado jugando con mi propia versión de esto, usando ‘si’, y todo parece estar funcionando bien. Por supuesto, esto se romperá horriblemente si se usa signalAll () en lugar de signal (), pero si solo se notifica un hilo a la vez, ¿cómo puede salir mal? Su código aquí – echa un vistazo a […]

Java: Cómo usar Thread.join

Soy nuevo en los hilos. ¿Cómo me puedo t.join para trabajar, por lo que el hilo que lo llama espera hasta que t.join de ejecutarse? Este código simplemente congelaría el progtwig, porque el hilo está esperando a que muera, ¿verdad? public static void main(String[] args) throws InterruptedException { Thread t0 = new Thready(); t0.start(); } […]

¿Por qué Thread.isInterrupted () siempre devuelve false?

Encontré el método de JavaDoc: Devuelve: verdadero si este hilo ha sido interrumpido; falso de lo contrario. Creo que algo está mal con mi comprensión del método. Además, puedo malinterpretar el concepto ‘interrupt’ en Thread. ¡Cualquier explicación es bienvenida! ¡Gracias! Fragmento de código: En la definición de hilo: public void run() { try { //Do […]

Problema de concurrencia de Hashmap

Tengo un Hashmap que, por razones de velocidad, me gustaría no requerir el locking. ¿Actualizarlo y acceder a él al mismo tiempo causará algún problema, suponiendo que no me preocupen los datos obsoletos? Mis accesos se obtienen, no iterando a través de él, y las eliminaciones son parte de las actualizaciones.

¿Cómo se escapa la referencia `this` a una clase externa mediante la publicación de una instancia de clase interna?

Esto se formuló de manera ligeramente diferente, pero solicitando una respuesta de sí / no, pero estoy buscando la explicación que falta en el libro (Concurrencia de Java en la práctica), sobre cómo este aparente gran error podría explotarse maliciosa o accidentalmente. Un último mecanismo mediante el cual se puede publicar un objeto o su […]

¿Cómo usar la propiedad CancellationToken?

Comparado con el código anterior para la clase RulyCanceler , quería ejecutar código usando CancellationTokenSource . ¿Cómo lo uso como se menciona en los tokens de cancelación , es decir, sin arrojar / atrapar una excepción? ¿Puedo usar la propiedad IsCancellationRequested ? Intenté usarlo así: cancelToken.ThrowIfCancellationRequested(); y try { new Thread(() => Work(cancelSource.Token)).Start(); } catch […]

¿Cuándo deberíamos usar Thread over Executor de Java?

El ejecutor parece una abstracción limpia. ¿Cuándo quieres utilizar Thread directamente en lugar de confiar en el ejecutor más robusto?