Why does the game loop need to sleep and how do you determine for how long? How do you keep the sleep time of a thread constant?
1
There are 1 answers
Related Questions in SLEEP
- Hibernate Query Exception: Cannot create critieria on owning entity
- Using like to non-string columns in Grails
- Play Framework Unable to build entity manager factory when Working with PostGIS
- How namedparameter query blocks SQL injection
- Is it necessary to create an repository and a service for each entity?
- JPA, Hibernate can I do composite primary key which one element is foreign kay @OneToMany?
- How to convert Hibernate List to String?
- Hibernate Lazy loading not work in OneToOne relation
- Hibernate Search Faceting not working
- JPA and web app
Related Questions in GAME-LOOP
- Hibernate Query Exception: Cannot create critieria on owning entity
- Using like to non-string columns in Grails
- Play Framework Unable to build entity manager factory when Working with PostGIS
- How namedparameter query blocks SQL injection
- Is it necessary to create an repository and a service for each entity?
- JPA, Hibernate can I do composite primary key which one element is foreign kay @OneToMany?
- How to convert Hibernate List to String?
- Hibernate Lazy loading not work in OneToOne relation
- Hibernate Search Faceting not working
- JPA and web app
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
The operating system will usually be running a lot of threads/processes simultaneously on any given core, and the scheduler has to decide how much processor time each one is going to get. If a thread is running continuously (without sleeping), it can end up dominating available processor resources.
Sometimes that's appropriate, e.g. for extremely computationally intensive applications. However, most programs shouldn't need to do that. With games in particular, the bottleneck is often graphics or IO performance, rather than available CPU resources (i.e. your program could end up wasting processor time while it waits for something else to catch up).
Making your thread sleep for a short period on each iteration frees-up some of the processor time. That lets the scheduler allocate time for other threads/processes, and keeps the system generally running better. Essentially, the sleep time is for the benefit of the rest of the system, rather than your own program.
There isn't really a 'correct' amount of sleep time as such. Generally speaking though, your thread should sleep for as long as possible without impacting your program's performance. A good way to do that is to determine the desired framerate for your game, and from there calculate how much of a delay you can afford between each frame.
Every time round your main loop, check if that amount of time has elapsed since the previous frame. If not, sleep for a short period, and try again next time round the loop.