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

bromon原创 请尊重版权

五、线程

  
实际上本系统并没有复杂的线程管理,但是我想提供一个控制台让管理员可以管理游戏主线程,可以让它停止、中段、恢复、重启动,本来的设计是管理员通过与线程A打交道,通过A去管理主线程B,但是熟悉java线程的朋友都知道,线程互相管理基本上就是不实际的,举个最简单的例子,A如何销毁B?也许你会说调用Bdestroy()方法就好了,网上很多讲解java线程的资料也确实是这么说的,但是他们都是鬼扯的,自己去看看java源代码吧,Thread.destroy()方法的实际代码如下:

 

public void destroy()

{

       throw new NoSuchMethodError();

}

 

  事实真相是,Thread.destroy()方法自始至终就没有被实现过。所有写文章,教别人用这个方法销毁线程的人,都去撞墙吧,丢人丢大了。

      

  最好的办法是A负责生成一个B并且启动它,然后B自己管理生存周期,AB通过使用可共享的方法来通信,这是sun推荐的做法。

 

下一篇:异步消息通信

你可能感兴趣的:(java,游戏,网络,服务器,sun)