Articles of concurrencia

En tsql, ¿es seguro un inserto con una instrucción Select en términos de concurrencia?

En mi respuesta a esta pregunta SO , sugiero usar una única statement de inserción, con una selección que incremente un valor, como se muestra a continuación. Insert Into VersionTable (Id, VersionNumber, Title, Description, …) Select @ObjectId, max(VersionNumber) + 1, @Title, @Description From VersionTable Where Id = @ObjectId Sugerí esto porque creo que esta afirmación […]

¿Cómo puedo envolver un método para que pueda matar su ejecución si excede un tiempo de espera especificado?

Tengo un método que me gustaría llamar. Sin embargo, estoy buscando una manera limpia y simple de matarlo o forzarlo a regresar si tarda demasiado en ejecutarse. Estoy usando Java. para ilustrar: logger.info(“sequentially executing all batches…”); for (TestExecutor executor : builder.getExecutors()) { logger.info(“executing batch…”); executor.execute(); } Me imagino que la clase TestExecutor debería implement Callable […]

¿Dónde se asigna la referencia variable, en la stack o en el montón?

tengo una pregunta Qué sucedió cuando declaro una variable dentro de un método, por ejemplo. void myMethod () { Ship myShip = new Ship (); } ¿Dónde se asigna la referencia de myShip, en stack o en el montón? Creo que en stack pero estoy confundido porque estaba leyendo en el libro de J2ME Game […]

Publicación incorrecta de Java Object Reference

El siguiente ejemplo es del libro “Concurrencia de Java en la práctica” por Brian Goetz, capítulo 3, sección 3.5.1. Este es un ejemplo de publicación incorrecta de objetos class someClass { public Holder holder; public void initialize() { holder = new Holder(42); } } public class Holder { private int n; public Holder(int n) { […]

EN ESPERA en sun.misc.Unsafe.park (método nativo)

Una de mis aplicaciones se cuelga durante un período de tiempo bajo carga, ¿alguien sabe qué podría causar tal salida en jstack? “scheduler-5” prio=10 tid=0x00007f49481d0000 nid=0x2061 waiting on condition [0x00007f494e8d0000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) – parking to wait for (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1085) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:807) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1043) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103) […]

¿Por qué la secuencia paralela no usa todos los hilos de ForkJoinPool?

Así que sé que si usa parallelStream sin una ForkJoinPool personalizada, utilizará ForkJoinPool por defecto, que tiene un subproceso menos por defecto, ya que tiene procesadores. Entonces, como se establece aquí (y también en la otra respuesta a esa pregunta) para tener más paralelismo, tienes que: envíe la ejecución de secuencia paralela a su propia […]

¿Cuándo es preferible usar boolean volátil en Java en lugar de AtomicBoolean?

He analizado las otras preguntas volátiles y Atomicxxxx en SO (incluida esta ) y he leído la descripción de java.util.current.atomic , y no estoy del todo satisfecho con los matices. Si estoy tratando de decidir entre usar volatile boolean y AtomicBoolean , ¿existen diferencias prácticas además de las operaciones atómicas de lectura, modificación y escritura […]

¿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 […]