五、線程
實際上本系統並沒有復雜的線程管理,但是我想提供一個控制台讓管理員可以管理游戲主線程,可以讓它停止、中段、恢復、重啟動,本來的設計是管理員通過與線程A打交道,通過A去管理主線程B,但是熟悉java線程的朋友都知道,線程互相管理基本上就是不實際的,舉個最簡單的例子,A如何銷毀B?也許你會說調用B的destroy()方法就好了,網上很多講解java線程的資料也確實是這麼說的,但是他們都是鬼扯的,自己去看看java源代碼吧,Thread.destroy()方法的實際代碼如下:
public void destroy()
{
throw new NoSuchMethodError();
}
事實真相是,Thread.destroy()方法自始至終就沒有被實現過。所有寫文章,教別人用這個方法銷毀線程的人,都去撞牆吧,丟人丟大了。
最好的辦法是A負責生成一個B並且啟動它,然後B自己管理生存周期,A和B通過使用可共享的方法來通信,這是sun推薦的做法。
下一篇:異步消息通信