0

我可以从线程内部打开一些线程吗?

我有一个具有 2 个不同角色的 Windows 服务。服务启动时,我打开 2 个线程:每个角色一个。在每个线程中我需要打开子线程。

我可以为每个核心打开多少个线程?

4

2 回答 2

1

当然,您可以从一个线程实例化其他线程 - 至于有多少这可能证明有用:每个内核的最佳线程数

值得记住的是,线程有其自身的成本,并且添加线程以提高性能只能在一定程度上起作用。

于 2013-03-01T09:48:34.900 回答
1

没有硬性限制……只要框架有足够的资源和空闲句柄等。过去我的一个应用程序在峰值运行了大约 150 个线程。

在生成线程中,我们过去常常根据需要生成更多线程,用于执行我们需要处理的任务。

一段时间后,我们开始使用 ThreadPool,因为它占用的资源较少,并且在应用启动时分配了 1024 个线程

请记住操作系统调度程序调度活动时的每个线程,并且您是否想要许多热线程。因此,当什么都不做时,要么让这些线程进入睡眠状态,要么如果使用 ThreadPool 只需退出当前迭代以将线程释放回池中

对于 .NET Framework,这些值得一读

线程和线程

http://msdn.microsoft.com/en-us/library/6kac2kdh.aspx

使用线程和线程

http://msdn.microsoft.com/en-us/library/e1dx6b2h.aspx

话虽如此,请注意您创建的内容。你可能需要担心线程安全、锁定、同步,但是你想怎么写。调试应用程序也变得更加困难

于 2013-03-01T09:48:38.070 回答