Me preguntaba cuál sería el enfoque más eficiente para implementar algún tipo de tarea en segundo plano en Java (supongo que sería algún tipo de subprocesos sin bloqueo). Para ser más precisos, tengo un código Java y luego, en algún momento, necesito ejecutar una operación de larga ejecución. Lo que me gustaría hacer es ejecutar esa operación en segundo plano para que el resto del programa pueda seguir ejecutándose y cuando esa tarea se complete simplemente actualice algún objeto específico que. Este cambio sería detectado por otros componentes.tarea de fondo java
Respuesta
Debe utilizar conjuntos de subprocesos,
http://java.sun.com/docs/books/tutorial/essential/concurrency/pools.html
ingenua idea: es posible que pueda crear hilo, darle una prioridad baja, y hacer un bucle de:
- haciendo un poco de trabajo
- que el rendimiento o el sueño para que otros hilos trabajar en parrallel
Eso dependerá de lo que realmente quiere hacer en su hilo
¿quieres hacer un nuevo hilo; dependiendo de cuánto tiempo el método tiene que ser, se puede hacer en línea:
// some code
new Thread(new Runnable() {
@Override public void run() {
// do stuff in this thread
}
}).start();
O simplemente hacer una clase nueva:
public class MyWorker extends Thread {
public void run() {
// do stuff in this thread
}
}
// some code
new MyWorker().start();
Sí, vas a querer hacer girar la operación fuera a su propio hilo. Agregar nuevos hilos puede ser un poco peligroso si no tienes cuidado y eres consciente de lo que eso significa y cómo interactuarán los recursos. Aquí hay un buen introduction to threads para ayudarlo a comenzar.
Hacer un hilo. Marca este hilo como Daemon. La JVM sale cuando el único subproceso que se ejecuta son todos los subprocesos de daemon.
- 1. Rails Tarea de fondo de la tarea
- 2. tarea fondo trabajador C#
- 3. Ejecutar fondo Tarea En Javascript
- 4. linux: matar a la tarea de fondo
- 5. Tarea confiable de fondo repetitivo en android
- 6. básico de Java tarea
- 7. Java 1.6 Roto cuando se lo llama por fondo Tarea de Symfony
- 8. Iniciar una tarea de fondo de larga duración
- 9. Ejecutando una tarea de fondo efímera desde MVC
- 10. iOS: finalización de una tarea al ingresar el fondo
- 11. Java - Programando una tarea diaria
- 12. Ayuda con la tarea de Java
- 13. ¿Cómo programar una tarea periódica en Java?
- 14. Deteniendo una tarea java paralela con ant
- 15. ¿Cómo ejecutar una tarea diariamente desde Java?
- 16. imagen de fondo de oscilación de java
- 17. Java Robot para ventanas de fondo (inactivas)?
- 18. ejecutores de Java: espere la finalización de la tarea.
- 19. Elegir un IDE de Java para las asignaciones de tarea
- 20. incapaz de tomar a cabo esta tarea en java
- 21. Configuración de Java GAE Appstats para la tarea cron
- 22. ¿Cómo ejecutar correctamente una tarea de Symfony en el fondo de una acción?
- 23. Android: Renderizaciones de OpenGL cuando se ejecuta una tarea de fondo pesado
- 24. ¿El mejor método de la tarea del fondo de los carriles actuales?
- 25. Fondo transparente en la etiqueta Java SWT
- 26. Android ASync tarea ProgressDialog no se muestra hasta que termina el hilo de fondo
- 27. Tarea del temporizador de fondo en la aplicación web JSP/Servlet
- 28. ¿Qué devuelve una tarea?
- 29. Advertencias del compilador Eclipse Java como tarea ant
- 30. Cómo excluir archivos fuente java en la tarea doc?
Sí, esto es lo que estaba buscando, más específicamente Ejecutores, .. Gracias. – markovuksanovic
¿Podría poner su propia respuesta sobre ejecutores? Estaba a punto de hacer una pregunta muy similar. Creo que los ejecutores deberían mencionarse como una respuesta específica. Le daría un voto positivo. No quiero poner una respuesta para robar puntos. Especialmente porque JEE desalienta el engendramiento de nuevos Hilos. – Wes