Java executorservice vs thread

La interfaz ExecutorService complementa a execute con un método submit similar, pero más versátil. Al igual que execute, submit acepta objetos Runnable, pero también acepta objetos Callable, que permiten a la tarea devolver un valor. El método submit devuelve un objeto Future, que se utiliza para recuperar el valor de retorno Callable y para gestionar el estado de las tareas Callable y Runnable.

ExecutorService también proporciona métodos para enviar grandes colecciones de objetos Callable. Por último, ExecutorService proporciona una serie de métodos para gestionar el apagado del ejecutor. Para soportar un apagado inmediato, las tareas deben manejar correctamente las interrupciones.

Vamos a demostrar el uso de importantes métodos de la interfaz ExecutorService con ejemplos. En este ejemplo, cómo crear un servicio de ejecutor y ejecutar una tarea dentro del ejecutor. Utilizamos el método Executors.newSingleThreadExecutor() para crear un ExecutorService que utiliza un único hilo de trabajo para ejecutar las tareas.

En el ejemplo anterior, hemos creado un ExecutorService que utiliza un único hilo de trabajo. Pero el verdadero poder de ExecutorService viene cuando creamos un pool de hilos y ejecutamos múltiples tareas concurrentemente en el pool de hilos.

Servicio de ejecución Javadoc

Bienvenidos a la tercera parte de mi serie de tutoriales sobre la concurrencia en Java. En este tutorial, aprenderemos a gestionar hilos en nuestra aplicación utilizando ejecutores y pools de hilos.Executors FrameworkEn el tutorial anterior, aprendimos a crear hilos en Java extendiendo la clase Thread o implementando la interfaz Runnable. Mientras que es fácil crear uno o dos hilos y ejecutarlos, se convierte en un problema cuando su aplicación requiere la creación de 20 o 30 hilos para ejecutar tareas simultáneamente.Además, no será exagerado decir que las grandes aplicaciones multihilo tendrán cientos, si no miles de hilos ejecutándose simultáneamente. Por lo tanto, tiene sentido separar la creación y gestión de hilos del resto de la aplicación. El marco de trabajo de los Ejecutores le ayuda con -La API de Concurrencia de Java define las siguientes tres interfaces de ejecutor que cubren todo lo que se necesita para crear y gestionar hilos -Aparte de las tres interfaces anteriores, la API también proporciona una clase de Ejecutores que contiene métodos de fábrica para crear diferentes tipos de servicios de ejecutor.Ejemplo de ExecutorService¡Muy bien! vamos a sumergirnos en un ejemplo ahora para entender las cosas mejor. En el siguiente ejemplo, primero creamos un ExecutorService con un único hilo de trabajo, y luego enviamos una tarea para que se ejecute dentro del hilo de trabajo.import java.util.concurrent.ExecutorService;

leer  Excepciones en java ejemplos

Marco ejecutor en java

Una de las características más geniales de Java es el marco de trabajo Executor, que le permite ejecutar asíncronamente sus tareas (unidades lógicas de trabajo), como consultas a bases de datos, cálculos complejos y renderización de imágenes.

Con IExecutorService, puede ejecutar tareas de forma asíncrona y realizar otras tareas útiles. Si la ejecución de su tarea tarda más de lo esperado, puede cancelar la ejecución de la tarea. Las tareas deben ser Serializables ya que son distribuidas.

Tenga en cuenta que, el servicio ejecutor distribuido (IExecutorService) está pensado para ejecutar el procesamiento donde se alojan los datos: en los miembros del servidor. En general, no se puede ejecutar un Java Runnable o Callable en los clientes ya que los clientes pueden no ser Java. Además, los clientes no alojan ningún dato, por lo que tendrían que obtener los datos que necesitan de los servidores potencialmente. Si quieres que algo se ejecute en todos o algunos clientes conectados a tu clúster, podrías implementarlo utilizando el mecanismo de publicación/suscripción; se podría enviar una carga útil a un ITopic con los parámetros de ejecución necesarios, y los clientes que escuchan pueden actuar sobre el mensaje.

Ejemplo de ejecución del servicio de ejecución de Java

2.2. Podemos elegir una clase de implementación de la interfaz ExecutorService y crear su instancia directamente. La siguiente sentencia crea un thread pool executor con un número mínimo de hilos de 10, un número máximo de hilos de 100, un tiempo de mantenimiento de vida de 5 milisegundos y una cola de bloqueo para esperar tareas en el futuro.

leer  Java vector ejemplo

3. Generalmente, las tareas se crean implementando la interfaz Runnable o Callable. Veamos el ejemplo de ambos casos.3.1. En el ejemplo dado, estamos ejecutando una tarea de tipo Runnable utilizando ambos métodos.

Por avivcas