首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Thread.Sleep(Timeout.Infinite)性能问题

Thread.Sleep(Timeout.Infinite)性能问题
EN

Stack Overflow用户
提问于 2010-10-05 12:36:47
回答 2查看 3.7K关注 0票数 1

主执行路径(主线程)将被分支到两个执行路径(两个新的线程在不同的作业上),但不再需要主线程。我可以将其中一个任务分配给主线程并保存一个线程(一个任务由主线程完成,另一个任务由新线程完成),但我想知道将主线程置于无限休眠Thread.Sleep(Timeout.Infinite)中是不是一个好方法。我的类将被实例化很多次,如果一个处于无限休眠状态的线程从OS中获取资源,这对我来说是个坏消息。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-05 12:55:41

您创建的每个线程都会占用堆栈空间。在Windows上,默认情况下是1MB。还有其他内部管理数据结构,操作系统用来跟踪线程,这也会占用一些内存,但1MB堆栈肯定会是最大的资源消耗。

话虽如此,如果我们只讨论2个线程与3个线程,那么差别是相当小的。如果是200而不是300,那么你可能需要担心一些事情。但是如果你产生了很多线程,你最好使用某种线程池(比如the one built-in to the .NET framework),而不是产生单独的线程。

票数 1
EN

Stack Overflow用户

发布于 2010-10-05 12:47:32

所有线程都会占用资源,而不管它们是否处于休眠状态。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3860877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档