我可以在Windows服务的另一个线程中打开更多的线程吗?

本文关键字:线程 服务 另一个 我可以 Windows | 更新日期: 2023-09-27 18:01:37

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

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

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

我可以在Windows服务的另一个线程中打开更多的线程吗?

当然可以从一个线程实例化其他线程——至于有多少线程可能是有用的:每个核心的最佳线程数

值得记住的是,线程本身是有代价的,添加线程来提高性能只在一定程度上有效。

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

在spawn线程中,我们曾经根据需要生成更多的线程,这些线程用来执行我们需要处理的任务。

过了一段时间,我们开始使用ThreadPool作为其较少的资源密集型,在应用程序启动时有1024个线程分配

记住每个线程在活动时都由操作系统调度程序调度,并且您想要许多热点线程。因此,当不做任何事情时,要么让这些线程休眠,要么使用ThreadPool退出当前迭代,将线程释放回池

对于。net Framework,这些

值得一读

Threads and Threading

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

使用线程和线程

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

话虽如此,还是要小心你所创造的东西。你可能需要担心线程安全,锁,同步,不管你怎么想。调试应用程序也变得有点困难