| Do not use Thread.yield() |
|
|
|
|
Author: 一滴蔚蓝色 | Date: 2008-07-03 | View: 438
|
开发技术 -
新手上路
| ||||
|
转自: http://lyo.blogsome.com/ I refactor the EventQueue in KEmulator, then test on some games. when running MI3 and Gangstar, the CPU reached 100% utilization. and after testing, i got my answer, cause of Thread.yield() in run() with a while(true) circle.
So i made a test, preReplace all the Thread.yield() with Thread.sleep(1) in game loading. this time, everything goes good. the MI3 got a lower 10% CPU utilization in average.
Thread.yield() will help your thread give time to other threads, but when other threads are free or yield()ing will still take up 100% of the CPU. Otherwise, Thread.sleep() is the only way to force the CPU getting a rest.
======================= May be there is a same case in Mobile development. In some handset, when the game reaches the memory limit, the key events will cause an obviously delay. In Realfootball team last year, i found out that calling more Thread.yield()(two or three) in the run() circle can solve the problem. Maybe one Thread.sleep(1) did the job here.
本文关键字: use Thread yield 阅读数: 439 | 打印 | E-mail
|
||||||||
| (J2ME FAQ) < 上一篇 | 下一篇 > (关于手机Java游戏模拟器) |
|---|