gpt4 book ai didi

java - 创建 Thread 对象或实际启动线程是否昂贵?

转载 作者:行者123 更新时间:2023-12-02 09:49:15 25 4
gpt4 key购买 nike

考虑this question .

创建线程成本高昂的原因有多种,特别是需要分配大量内存并且需要注册线程。

现在考虑这段代码:

Thread thread = new Thread(new SomeRunnable());
thread.start();

哪一部分是“昂贵”的部分?实际创建 Thread 对象的行还是启动线程的行?或两者?我之所以问这个问题,是因为我正在编写游戏的服务器组件,并且我正在讨论是否应该在玩家连接后立即创建 Thread 对象并在玩家完成登录后启动线程,还是应该两者都做玩家登录完成后创建并启动线程。

最佳答案

创建Thread对象非常便宜。您只需付出调用构造函数的代价。占用空间( native 调用、堆栈内存等)的是 start() 方法

另一方面,如果您创建大量线程,请考虑提前创建(并启动它们)并拥有一个池。这已经为您完成,请查看 Executors类。

关于java - 创建 Thread 对象或实际启动线程是否昂贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14569457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com