[20:43:28] Hprmedina Una simple pregunta técnica con respecto a hilos en Java. Que no será muy diferente de c# [20:44:35] Que es mejor cuando queremos pausar una aplicación ¿Matar el hilo o ponerle un descanso mintras esté en modo puse? [20:44:49] y si se mata cuando se reanuda se vuelve a crear [20:45:45] pues, depende [20:46:04] De ambas formas funciona [20:46:40] si matas el hilo -> no queda en pausa [20:46:40] pero la cuestión es el tema de que necesite menos recursos [20:46:50] necesite o use? [20:46:52] se queda parado [20:47:49] en Java la clase Thread tienen un método run donde se implementa las sentencias que ejecuta el hilo [20:47:59] cuando termina el hilo muere [20:48:32] por lo que se anida en un while(run) donde run es true [20:48:54] cuando se pone false el hilo se mata porque deja de iterar el while [20:49:44] la opción pause es añadir dentro del while un if que de ser true ejecuta un Thread.sleep(100) [20:49:58] de forma que se queda pausado [20:50:24] otra opción es suspenderlo a la espera de que se ejecute un notice() [20:50:39] pero esa opción no se porque en Android no va muy bien [20:52:35] Hprmedina El tema es que esto practicando programación en Android y a diferencia del PC tiene que estar muy pulido si supera la memoria se cierra la aplicación [20:52:59] y el recolector de basura va por libre [20:53:19] ufffff [20:53:31] poner un while (true) es para matar el procesador [20:53:50] yo pongo while(run) [20:54:06] para poder poner a run false para matar el hilo [20:54:41] imagina que hilo es de un muñeco que se mueve en un juego [20:54:55] debe de moverse mientras el juego está en marcha [20:55:07] y capturar eventos [20:55:36] o.O [20:55:57] se supone que siempre debe haber un sleep para evitar sobrecargar la CPU [20:56:10] en cada iteracion de while [20:57:17] el mínimo recomendado son 100 milisegundos [20:58:23] claro que si tienes unos 10 hilos [20:58:24] esto está mal programado Miguillen [20:58:25] bufff [20:58:44] Yo como veo los ejemplos [20:59:09] cuando se programa "con eventos", no hay esperas del tipo while() { sleep } [20:59:41] lo que se hace es que un "cliente" registra el "evento", cuando el evento ocurre llama al método que lo controla, así no existe un while esperando respuesta [21:00:42] Hprmedina para el movimiento [21:01:34] while(run) {move() Thread.sleep(100) } [21:01:59] o.O mal mal [21:02:25] debería ser.... if mover() -> inicia_hilo ( move() ) [21:03:31] Hprmedina y cuando se mueve el hilo muere [21:03:43] claro [21:04:00] Hprmedina en java solo se puede llamar una vez al métod start [21:04:16] XD entonces llama a otro médito [21:04:19] *método [21:04:31] una vez a muerto el hilo hay que volver a crear el objeto [21:05:15] y stop pause resume están obsoletos [21:05:42] bueno trataré de experimentar con lo que dices a ver si optimizo esto un poco [21:05:55] Hprmedina muchas gracias. Voy a cenar [21:06:02] lo otro Miguillen [21:06:31] es tener dos programas, y que se comuniquen con colas o algo parecido [21:06:45] vale [21:07:15] Hprmedina Yo hice el pacman de la forma que te he dicho [21:07:29] Pac-Man [21:07:41] se pueden crear métodos estáticos, que no requieran instanciación [21:07:43] me voy a cnear que me están llamando [21:07:50] y a ellos pasarle los objetos de movimiento [21:07:58] ya [21:08:09] lo que no debes hacer es un loop