1

我只是在 C# 中寻找并行编程的方法,并了解内核和真正的并行编程的重要性。

但我还有一个问题:

假设我有一个长时间运行的任务,这是否意味着这将使用线程池中的线程和不同内核中的线程执行,以实现真正的并行编程。

还是取决于传递给任务的实际委托?

我希望我的问题很清楚。

4

2 回答 2

2

代表本身没有区别。这是最TaskScheduler重要的。

默认TaskScheduler将通过ThreadPool.. 运行它们以使它们同步运行,您将传入TaskScheduler当前正在使用的实例 .. 例如 static TaskScheduler.FromCurrentSynchronizationContext

于 2013-10-02T04:21:12.943 回答
1

真正的并行编程需要多个内核,因为线程必须在单独的线程上执行才能真正并行运行。在单核系统中,您只能实现假并行,因为不同的线程必须通过分配的时隙共享内核。当前线程在单核上运行时,其他线程正在等待。

于 2013-10-02T04:21:58.713 回答