佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 1510|回复: 4

Java的疑问

[复制链接]
发表于 23-7-2008 07:49 AM | 显示全部楼层 |阅读模式
我最近买了一本game programming in java的书,刚看了首几页,有些不明白,想在这里请教一下。

while(running){

gameUpdate();
gameRender();
gameDraw();

  try{
  Thread.sleep(20)
  }catch(Exception e){}

}

书上写的是Sleep的用途是让game暂时休息20ms,让Render和draw处理一些较为复杂的内容(graphic)。

我的疑问是:如果从上到下run的话,gamerender和gamedraw还没跑完,sleep有可能先跑??

PS:这个class是runnable和有一个thread
回复

使用道具 举报


ADVERTISEMENT

发表于 23-7-2008 09:08 AM | 显示全部楼层
這要看 你那兩個 routines 的內容了。。
如果你有 spawn thread 來處理的話, 就不等了, 直接去下一line。。
若沒, 就會block 住直到這個routine return ,才到下個line。
回复

使用道具 举报

 楼主| 发表于 23-7-2008 03:26 PM | 显示全部楼层
您的意思是说,如果这两个method里面有Thread在handle一些处理,就不会等他return而直接到下一行了吗?确实有个THread叫Animator的。
回复

使用道具 举报

发表于 23-7-2008 04:11 PM | 显示全部楼层
gameUpdate();
gameRender();
gameDraw();

它會等 這些 function return
但 這些function 都 return 很快 因為  , 他們的工作只是 spawn off thread, 一spawn 好好 就 return 了。。 至于 那個 thread 里搞什么, 那是那個thread 的事了。。所以function 很快 就return 了。。

例如
function  gameDraw (){
      thread  drawingthread() = new thread(doSomethingComplexHere。。。);
      drawingthread.start()   < --- 這個一start 就直接下一line  不等了

    return 0;  《-- 很快就return 了。。。
}
回复

使用道具 举报

 楼主| 发表于 23-7-2008 04:30 PM | 显示全部楼层
我明白了,十分感谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 24-12-2025 12:39 AM , Processed in 0.094276 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表