TransWikia.com

¿Que diferencia hay entre dormir el ciclo principal y el uso de timer en java?

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)?

One Answer

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

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP