Necesito encontrar una manera de separar un hilo de una llamada estática y no esperar a que se complete el subproceso. Básicamente, un enfoque de "fuego y olvídate". ¿Puede alguien proporcionarme un ejemplo simple de cómo se puede lograr esto?Java, no espere a que finalice un subproceso
Respuesta
Thread t = new Thread(new YourClassThatImplementsRunnable());
t.start();
// JDK 8
new Thread(() -> methodYouWantToRun()).start();
public static void foo() {
new Thread() {
public void run() {
//do something here....
}
}.start();
}
Pero si la tarea es relativamente simple, use el constructor Runnable para Thread (es decir, Thread nuevo (new Runnable() {public void run() {...}})), ya que de esa manera no está extendiendo un clase complicada, pero implementando una interfaz, que debería ser más simple en el bytecode y no tendrá ningún conflicto de nombres con los métodos en Thread. – Gracenotes
básicamente empezar el hilo y no te ejecutar un trabajo unirse. Entonces no esperarás que el hilo termine.
Si se trata de un hilo de larga duración que tiene un ciclo de vida similar a su aplicación en sí, y va a pasar mucho de su tiempo de espera en otros hilos:
new Thread(new yourLongRunningProcessThatImplementsRunnable()).start();
Si se trata de una corta duración , vinculado a la CPU de tareas:
ExecutorService es = Executors.newFixedThreadPool(Runtime.availableProcessors());
es.submit(new yourTaskThatImplementsRunnable());
Aunque, en la mayoría de casos como este, que va a presentar una serie de tareas a la misma ExecutorService
.
Ver:
Dependiendo de la naturaleza de su tarea, diferentes formas pueden ser approrpiate:
(1) Como muchos han mencionado, una forma común para una tarea ocasional es simplemente para construcción de un hilo y llame a su inicio() método.
(2) Recuerde que si el hilo de fondo no se detiene, de manera predeterminada evitará que su programa se cierre cuando hayan terminado otros hilos. Es posible que desee llamar a setDaemon (true) en la secuencia para que no tenga este comportamiento. (En las aplicaciones basadas en GUI, por otro lado, generalmente acaba llamando a System.exit() de todos modos, y lo ideal es que inserte en su tarea larga un limpia manera de cerrar.)
(3) Si usted frecuentemente tiene tareas breves para "disparar y olvidar", entonces considere usar el Executors framework disponible desde Java 5 en adelante.
Eso es genial, gracias. – eric2323223
- 1. Espere a que el método finalice
- 2. Inicio del proceso asincrónico y espere a que finalice
- 3. ¿Cómo hago para que un subproceso espere a que JFrame se cierre en Java?
- 4. Espere a que el método jquery .html finalice la representación
- 5. Espere a que finalice la llamada AJAX (POST)
- 6. Espere a que el código finalice la ejecución
- 7. Espere a que termine un subproceso desconectado en C++
- 8. Ejecute una aplicación con PowerShell y espere hasta que finalice
- 9. ¿Cómo hago que jQuery espere a que finalice una llamada Ajax antes de que vuelva?
- 10. Java Class - No espere a que el proceso para salir
- 11. Espere a que SwingWorker termine
- 12. Espere a que [NSAlert beginSheetModalForWindow: ...];
- 13. Espere a que QueueUserWorkItem complete
- 14. Espere a que TinyMCE cargue
- 15. Java: espere el proceso de ejecución hasta que salga
- 16. Cómo esperar a que finalice el comando del sistema
- 17. Cómo esperar a que un proceso finalice C++
- 18. espere a que se conecte gdb
- 19. ¿Cómo decirle a .hover() que espere?
- 20. Espere a que tomcat termine de iniciar
- 21. Espere a que se completen los subprocesos
- 22. EC2 Java Api Espere hasta que se cree Ec2 Instance.
- 23. ¿Cómo esperar a que finalice una transición en javafx 2.1?
- 24. Trabajador Subproceso en Java
- 25. bloqueo de subproceso Java
- 26. Espere hasta que QWidget cierre
- 27. subproceso Popen que no trabajan con pythonw.exe
- 28. OutOfMemoryError en un subproceso Java separado
- 29. Marshall a un subproceso manualmente
- 30. ¿Qué es un subproceso process_reaper en Java?
Eso es básicamente el comportamiento predeterminado de un hilo: ¿este hilo va a necesitar señalar el hilo de envío en algún momento o cambiar el estado de una variable compartida? Más detalles sería bueno. – Gandalf