2012-08-17 61 views
1

标题是正义的。如果您尝试在单核心的计算机上使用TPL,会发生什么情况?

我建立一个使用TPL,而不是BackgroundWorker的应用程序,但我想知道,如果你尝试不使用多核CPU的机器上运行TPL可能会发生什么。

是否有任何兼容性问题?性能下降?或者应用程序出现繁荣?

+0

恕我直言,关键是要记住异步和并发的不同目标。如果你的线程只有一个核心可以调度(这可能是由于多种原因,而不仅仅是机器中的物理CPU),那么这会限制你的并发性(在多核并行操作方面),但TPL在这种情况下仍然是一个非同步的大赢家,因为它允许您不阻止等待完成操作的线程。例如,由于异步,您仍然可以在单核机器上执行N个并行HTTP调用。 :) – 2012-08-17 15:00:17

回答

1

没有问题,没有可测量的减速。当然,CPU限制任务也不会加速。 TPL自动适应可用内核的数量。

2

一个烧毛核PC可仍然线程。

一切都应该正常工作,与所述线程池创建线程(1或2默认情况下)的非常低的数目。

你还是付TPL的开销,但你不会得到正常的任何利益。

相关问题