核心与我可以产生的线程数之间的关系

Gur*_*epS 2 c# hardware concurrency multithreading

我有一个Intel四核CPU.

如果我要开发一个仅在我的机器上使用的Winforms应用程序(我使用C#btw),我可以生成多少个线程?

核心和我可以在任何时间运行的最大线程数之间是否存在某种相关性?我是否需要在任何时候找出有多少线程在运行?如果有,这可能吗?(我知道有最小和最大线程的属性)?这取决于线程池(此池中线程的最大数量是否会发生变化?).这是这个帖子/帖子的C#部分.

Sam*_*ron 11

这一切都取决于,如果您的线程在100%的时间内处于活动状态(而不是等待IO),那么每个CPU拥有更多的1个线程几乎没有意义.但是,除非您执行复杂的数值计算,否则很少会出现这种情况.

.Nets threadpool有:http://msdn.microsoft.com/en-us/library/system.threading.threadpool.aspx

线程池的默认大小为每个可用处理器250个工作线程,以及1000个I/O完成线程.

所以,我想说,除了以下任何人都可以给你很少的建议:

  • 衡量措施措施.

在某些时候,当您添加更多线程时,由于上下文切换和同步,内容会变慢.