Articles of multiprocesador

¿Es posible forzar a una aplicación Java existente a usar no más de x núcleos?

Estamos evaluando los progtwigs Java existentes. Son aplicaciones de subprocesos diseñadas para beneficiarse de CPU multinúcleo. Nos gustaría medir el efecto del número de núcleos en la velocidad de ejecución, pero no estamos dispuestos (y no podemos) a cambiar el código de estas aplicaciones. Por supuesto, podríamos probar el software en diferentes máquinas, pero esto […]

tenedor en progtwig de subprocesos múltiples

He oído que mezclar bifurcación y subprocesamiento en un progtwig podría ser muy problemático, a menudo como resultado de un comportamiento misterioso, especialmente cuando se trata de recursos compartidos, como lockings, derivaciones, descriptores de archivos. Pero nunca entiendo completamente cuáles son exactamente los peligros y cuándo pueden suceder. Sería genial si alguien con experiencia en […]

¿Algún buen hilo de resorte con ejemplos de TaskExecutor?

Estoy intentando conocer cómo implementar el subprocesamiento en una aplicación Java que usa Spring para la gestión de transacciones. Encontré la sección TaskExecutor en la documentación de Spring , y ThreadPoolTaskExecutor parece que se ajusta a mis necesidades; ThreadPoolTaskExecutor Esta implementación solo se puede usar en un entorno Java 5 pero también es la más […]

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

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

¿Deberías sincronizar el método de ejecución? ¿Por qué o por qué no?

Siempre he pensado que sincronizar el método de ejecución en una clase Java que implementa Runnable es redundante. Estoy tratando de descubrir por qué la gente hace esto: public class ThreadedClass implements Runnable{ //other stuff public synchronized void run(){ while(true) //do some stuff in a thread } } } Parece redundante e innecesario ya que […]

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

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

¿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?

Sincronización del constructor en Java

Alguien en algún lugar me dijo que los constructores de Java están sincronizados para que no puedan accederse simultáneamente durante la construcción, y me preguntaba: si tengo un constructor que almacena el objeto en un mapa, y otro hilo lo recupera de ese mapa antes de su construcción finaliza, ¿se bloqueará el hilo hasta que […]