主执行路径(主线程)将被分支到两个执行路径(两个新的线程在不同的作业上),但不再需要主线程。我可以将其中一个任务分配给主线程并保存一个线程(一个任务由主线程完成,另一个任务由新线程完成),但我想知道将主线程置于无限休眠Thread.Sleep(Timeout.Infinite)中是不是一个好方法。我的类将被实例化很多次,如果一个处于无限休眠状态的线程从OS中获取资源,这对我来说是个坏消息。
发布于 2010-10-05 12:55:41
您创建的每个线程都会占用堆栈空间。在Windows上,默认情况下是1MB。还有其他内部管理数据结构,操作系统用来跟踪线程,这也会占用一些内存,但1MB堆栈肯定会是最大的资源消耗。
话虽如此,如果我们只讨论2个线程与3个线程,那么差别是相当小的。如果是200而不是300,那么你可能需要担心一些事情。但是如果你产生了很多线程,你最好使用某种线程池(比如the one built-in to the .NET framework),而不是产生单独的线程。
发布于 2010-10-05 12:47:32
所有线程都会占用资源,而不管它们是否处于休眠状态。
https://stackoverflow.com/questions/3860877
复制相似问题