考虑这个问题。
现在有多种原因可以解释为什么创建线程很昂贵,特别是需要分配大量内存并且需要注册线程。
现在考虑这段代码:
Thread thread = new Thread(new SomeRunnable());
thread.start();
其中哪一部分是“昂贵”的部分?实际创建 Thread 对象的行还是启动线程的行?或两者?我问的原因是因为我正在编写游戏的服务器组件,并且我正在讨论是否应该在玩家连接后立即创建 Thread 对象并在玩家完成登录后启动线程,或者我应该两者兼而有之在玩家完成登录后创建并启动线程。