科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件网络在线游戏开发心得(服务器端)(七)

网络在线游戏开发心得(服务器端)(七)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

为了让系统具备让人满意的性能,应该尽量多的重用对象,减少创建新对象。

作者:bromon 来源:CSDN 2008年3月24日

关键字: 服务器端 在线游戏 网络 游戏 Linux

  • 评论
  • 分享微博
  • 分享邮件
七、启动与退出


  
为了让系统具备让人满意的性能,应该尽量多的重用对象,减少创建新对象。比如上面提到的消息发送,我们的操作是提供一个静态类,在系统启动的时候就初始化,保持与JMS服务器的连接,系统发送消息的时候,不用再去查询JNDI和生成QueueConnectionFactory,这样可以提高系统响应速度。

  
在数据库连接池的问题上,我们也采用同样的操作,启动的时候初始化N个连接。但是如果在关闭进程的时候不做任何操作,会导致JMS抛出socket异常,虽然没什么大的影响,但总显得不专业,而且池中的连接不被释放的话,也可能导致问题。最好能够让系统像jboss等控制台程序一样,ctrl+c之后能够执行操作,释放资源再退出。我们可以通过给进程/线程加上一个Hook来实现,windows程序员应该对这个非常熟悉。

 

Hook应该是一个线程方法,如下:

 

public class Hook extends Thread

{

       public void run()

       {

              //释放数据库连接,销毁连接池

              //关闭与JMS的连接

       }

}

 

       在主线程中加入:

 

Runtime.getRuntime().addShutdownHook(new Hook()) ;

 

那么进程/线程会在退出的时候执行Hookrun方法,清理资源。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章