Stack Overflow en español Asked by Ming Ye on December 14, 2020
Estoy realizando un pequeño juego de snake en Java y he visto que muchas personas usan un timer para hacer el movimiento del snake, y me ha surgido la duda de que es lo que hace el timer exactamente?
Hay alguna diferencia entre hacer un timer y hacer un while true con Thread.sleep(100)?
Un Timer permite correr funciones en un hilo aparte, con lo cual toda tu interfaz mantendrá su funcionalidad constantemente.
Por otro lado, si usas un while(true)
y dentro metes un thread.sleep(100)
tu aplicación quedará "colgada" durante esos 100ms en cada iteración del while.
En el caso que planteas no veo gran diferencia a no ser que vayas a tener un servicio de fondo intentando acceder a recursos que estén en uso en el hilo principal, pues el principal problema de usar Thread.sleep()
es que bloqueamos el acceso a todos los recursos que estén abiertos por el hilo que pausas, por ejemplo, si tienes un archivo abierto (para leer o guardar la puntuación) y un servicio intenta abrir ese mismo archivo para actualizarlo dará fallo, pues el archivo está bloqueado por el hilo principal, el cual se queda "congelado" todo el rato.
Correct answer by Benito-B on December 14, 2020
2 Asked on August 27, 2021 by juan-diego-valdivia-mendoza
1 Asked on August 26, 2021 by fabrixo96
2 Asked on August 26, 2021 by fernando-cruz
2 Asked on August 26, 2021 by luis
2 Asked on August 26, 2021 by fabian-cristancho
2 Asked on August 26, 2021 by hugo-fernandez
1 Asked on August 26, 2021 by andrus-diaz
1 Asked on August 26, 2021
3 Asked on August 26, 2021
1 Asked on August 26, 2021
1 Asked on August 26, 2021 by federico-choy
2 Asked on August 26, 2021 by alex-varela
1 Asked on August 26, 2021 by user166844
1 Asked on August 26, 2021 by jos-carlos-castillo
2 Asked on August 26, 2021 by antonio-ruiz
Get help from others!
Recent Answers
Recent Questions
© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP