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 […]
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 […]
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 […]
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) { […]
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) […]
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 […]
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? ¿Qué proyectos, herramientas y bibliotecas están disponibles ahora? ¿Qué informes de experiencia ha habido?
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 […]
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 […]