我只是在C#中找到并行编程的方法,并理解内核的重要性和真正的并行编程。
但我还有一个问题:
假设我有一个长时间运行的任务,这意味着这将使用线程池和不同内核中的线程执行,以实现真正的并行编程。
或者它取决于传递给任务的实际委托?
我希望我的问题很明确。
答案 0 :(得分:2)
代表本身没有区别。重要的是TaskScheduler
。
默认TaskScheduler
将通过ThreadPool
..运行它们以使它们同步运行,您将传入当前正在使用的TaskScheduler
实例..例如静态TaskScheduler.FromCurrentSynchronizationContext
。
答案 1 :(得分:1)
真正的并行编程需要多个内核,因为线程必须在不同的线程上执行才能真正并行运行。在单核系统中,您只能实现伪并行,因为不同的脚踏必须通过分配的时隙共享内核。当前线程在单核上运行时,其他踏板正在等待。