¿Qué sucede si la cola de ExecutorService está llena?

Esto puede estar un poco fuera del tema, pero una opción para este problema es usar una cola de bloqueo de longitud fija y usar ThreadPoolExecutor.CallerRunPolicy (). De esa manera, si el consumidor no es lo suficientemente rápido (por lo tanto, la cola se está llenando), entonces se utilizará el hilo de llamada (productor) para ejecutar la tarea en sí. Podemos inicializar un ejecutor como el siguiente:

executorService = new ThreadPoolExecutor(DEFAULT_THREAD_COUNT,
        DEFAULT_THREAD_COUNT, 2, TimeUnit.MINUTES,
        new ArrayBlockingQueue<Runnable>(DEFAULT_QUEUE_LENGTH),
        new ThreadPoolExecutor.CallerRunsPolicy());

Desde la API: "Un controlador para tareas rechazadas que ejecuta la tarea rechazada directamente en el hilo de llamada del método de ejecución, a menos que el ejecutor se haya cerrado, en cuyo caso la tarea se descarta".

Respuesta 1

A medida que verifica la implementación Executors.newFiexedThreadPool,

public static ExecutorService newFixedThreadPool(int nThreads) {
    return new ThreadPoolExecutor(nThreads, nThreads,
                                  0L, TimeUnit.MILLISECONDS,
                                  new LinkedBlockingQueue<Runnable>());
}

Las tareas se lanzarán a LinkedBlockingQueue y esperarán a que se ejecute el subproceso. Si hay demasiadas tareas esperando, puede arrojar OutOfMemory en lugar de StackOverflow

Respuesta: 2

Me gustaría ejecutar un contenedor web donde cada aplicación web se ejecuta en su propio proceso (JVM). Las solicitudes entrantes se envían mediante una aplicación web proxy que se ejecuta en el puerto 80 a aplicaciones web individuales, cada una (aplicación web) que se ejecuta en ...

He creado un archivo usando java, con el siguiente código String Filecontent = "hei"; creando archivo PrintWriter writer = new PrintWriter ("D: // balanworkspace // Coretest // Corejavatest // src // intvquestest // ...

Hoy leo mucho sobre Docker, incluso intenté ejecutarlo en mi computadora portátil con Vagrant. Pero aún no estoy claro por qué y especialmente cómo presentarlo a mi equipo. Es solo que no veo el uso ...

Estoy tratando de implementar una ordenación rápida en Java. Sin embargo, estoy experimentando un comportamiento extraño. Mi algoritmo funciona para 70 elementos o menos, pero todo lo anterior hace que toda la aplicación de Java se congele. es esto es ...