网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.如何开发会话Bean(无状态会话Be.
.Java I/O API之性能分析 (上).
.关于 MVC 模式中的通知机制.
.Java 学习集中营 各种问题的分析.
.tomcat向weblogic移植的中文乱码.
.java设计模式之Memento(恢复对象.
.Java I/O API之性能分析.
.Java理论和实践:用软引用阻止内存.
.用Spring AOP实现开发中松散耦合.
.Java环境变量的设置与调试.
.java绘制一个成交量的统计图.
.JBuilder9+weblogic7.0完全攻略.
.SunStorEdgeInstantImage?操作.
.Java究竟是什么?.
.开源技术:在Eclipse中构建备忘单.
.如何实时得到java object占用的空.
.再论Java Swing线程.
.Java的数据库应用.
.信息系统中用Java访问SQLServer.
.Java Swing入门基础 (转).

调整配置实现对Java的应用性能优化

发表日期:2008-1-5



  Robocode的每个机器人都是一个线程,线程调度为非强占式,由战斗治理线程依次调度运行。每个线程执行到一个阻塞函数的时候,交出cpu占用权。对于AdvancedRobot,阻塞函数是excute()。
  
  从这个角度而言,可以把robocode看作是回合制的游戏,每个回合各个robot设定要做些什么操作,即调用setXXX(),调用excute()完成本回合的操作设定。各个robot都设定完后,战斗模拟模块模拟执行各个robot的动作,并且在屏幕显示结果。下个回合,robot线程在excute()下面继续执行,直到再次调用excute()为止。
  
  不过,setXXX()设定的操作,往往是在一个回合中执行不完的。在robocode中,一个回合是游戏中的一个时间单位,各个元素的运动都有一定的速度,需要一定单位的时间才能完成。假如上回合中设置的动作还没有完成,本回合又重新设定了,就会把新动作覆盖旧动作。
  
  事件处理函数onXXX(),看起来是在事件发生的时候立即执行的,其实不然,还是要在回合中轮到这个robot的时候才能执行。而且若在队列中有多个事件,而某个事件处理函数调用了excute()结束了本回合的动作,那么剩下的事件就要等到下个回合才能处理了。因此,onXXX()改变的只是某个线程内部的执行次序,并不改变robot线程之间的执行次序。
上一篇:Java从入门到精通之书籍篇 人气:989
下一篇:Java新手入门——整理的SCJP听课笔记 人气:643
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐