我阅读了很多 .Net 资源,告诉我我应该使用线程池线程而不是自己实例化一个新线程。他们说你应该这样做,因为实例化一个新线程是一项昂贵的操作。在线程创建期间会发生什么使其成为一项昂贵的操作?
最佳答案
一切都是相对的。创建一个新线程是昂贵的......相对于不创建一个。如果您没有为每个线程做很多工作,那么构建和拆除线程所涉及的工作可能会占 CPU 时间的可测量部分。但是相对于创建新进程来说,它是便宜的,尤其是在 Windows 上。
使用线程池通常也更好,因为它经过调整可以帮助您避免同时激活过多线程。您很少希望一次有多个线程处于事件状态,否则您将花费大量 CPU 时间在所有线程之间执行上下文切换。使用线程池会为您管理这一点,因为额外的请求会排队等待,直到工作线程准备就绪。
关于.net - 为什么创建一个新线程很昂贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5626803/