Articles of concurrency

Forma correcta de sincronizar ArrayList en Java

No estoy seguro de si esta es la forma correcta de sincronizar mi ArrayList . Tengo una ArrayList in_queue que se transfiere desde la función registerInQueue . ArrayList in_queue = null; public void registerInQueue(ArrayList in_queue) { this.in_queue = in_queue; } Ahora estoy tratando de sincronizarlo. ¿Esto está sincronizando correctamente mi objeto in_queue ? List in_queue_list […]

Contenedor Jboss Java EE y un ExecutorService

Tengo una aplicación java independiente que utiliza el ExecutorService para procesar varios trabajos en paralelo ExecutorService es = Executors.newFixedThreadPool(10); Ahora quiero volver a utilizar la misma solución dentro de un bean EJB pero no estoy seguro de cómo inicializar correctamente el ThreadPool, ya que normalmente dejaría el contenedor Java EE para controlar todos los recursos […]

Java ReentrantReadWriteLocks: ¿cómo adquirir de forma segura el locking de escritura?

Estoy utilizando en mi código en este momento un ReentrantReadWriteLock para sincronizar el acceso a través de una estructura similar a un árbol. Esta estructura es grande y es leída por muchos hilos a la vez con modificaciones ocasionales en partes pequeñas, por lo que parece ajustarse bien a la expresión de lectura y escritura. […]

CountDownLatch vs. Semaphore

¿Hay alguna ventaja de usar java.util.concurrent.CountdownLatch en lugar de java.util.concurrent.Semaphore ? Por lo que puedo decir, los siguientes fragmentos son casi equivalentes: 1. Semáforo final Semaphore sem = new Semaphore(0); for (int i = 0; i < num_threads; ++ i) { Thread t = new Thread() { public void run() { try { doStuff(); } […]

¿Imposible crear un grupo de subprocesos en caché con un límite de tamaño?

Parece imposible crear un grupo de subprocesos en caché con un límite en la cantidad de subprocesos que puede crear. Así es como se implementa Executors.newCachedThreadPool estático en la biblioteca estándar de Java: public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS, new SynchronousQueue()); } Entonces, usando esa plantilla para continuar creando un […]

¿Cuál es el algoritmo de progtwigción de JVM?

Tengo mucha curiosidad sobre cómo funciona la JVM con los hilos. En mis búsquedas en Internet, encontré material sobre RTSJ, pero no sé si son las instrucciones correctas para mis respuestas. También encontré este tema en los foros de sun, http://forums.sun.com/thread.jspa?forumID=513&threadID=472453 , pero eso no es satisfactorio. ¿Puede alguien darme algunas indicaciones, material, artículos o […]

Ejecutores de Java: ¿cómo puedo establecer la prioridad de la tarea?

¿Existe la posibilidad de asignar prioridad a las tareas que ejecutan los ejecutores? He encontrado algunas declaraciones en JCIP sobre esto, pero no puedo encontrar ningún ejemplo y no encuentro nada relacionado con los documentos. De JCIP: Una política de ejecución especifica el “qué, dónde, cuándo y cómo” de la ejecución de tareas, incluyendo: … […]

¿Cómo se consulta un pthread para ver si aún se está ejecutando?

En mi destructor quiero destruir un hilo limpiamente. Mi objective es esperar a que un hilo termine de ejecutarse y LUEGO destruir el hilo. Lo único que encontré sobre la consulta del estado de un pthread es pthread_attr_setdetachstate, pero esto solo te dice si tu hilo es: PTHREAD_CREATE_DETACHED PTHREAD_CREATE_JOINABLE Ambas cosas no tienen nada que […]

Executors.newCachedThreadPool () versus Executors.newFixedThreadPool ()

newCachedThreadPool() versus newFixedThreadPool() ¿Cuándo debería usar uno u otro? ¿Qué estrategia es mejor en términos de utilización de recursos?

¿Cuál sería mejor para las tareas concurrentes en node.js? Fibras? ¿Trabajadores web? o hilos?

Tropecé con node.js en algún momento y me gustó mucho. Pero pronto descubrí que carecía de la capacidad de realizar tareas intensivas de CPU. Entonces, comencé a buscar en Google y obtuve estas respuestas para resolver el problema: Fibras, Webworkers y Threads (thread-a-gogo). Ahora cuál usar es una confusión y uno de ellos definitivamente necesita […]