AnswerBun.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!

Related Questions

Expresión regular para palabras en php

1  Asked on August 27, 2021 by carlos-valdes-web

   

mostrar solo los elementos true de un array

2  Asked on August 26, 2021 by fernando-cruz

   

como arreglar este stored procedure?

2  Asked on August 26, 2021 by luis

     

Ayuda con array tridimensional

1  Asked on August 26, 2021

   

Cards Bootstrap

1  Asked on August 26, 2021 by nat-najera

     

Inicialización: corchetes { }, asignación =, y otras formas

1  Asked on August 26, 2021 by federico-choy

 

Acceso a RowCommand aspx

1  Asked on August 26, 2021 by ledferoz10

       

¿Como recargar un div al enviar un formulario?

1  Asked on August 26, 2021 by jos-carlos-castillo

       

¿Donde inicializar una BD SQLite en Android?

2  Asked on August 26, 2021 by antonio-ruiz

     

Ask a Question

Get help from others!

© 2022 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP