在单核上使用多线程的控制台应用程序

时间:2010-05-24 06:10:29

标签: c# multithreading

  

可能重复:
  Will Multi threading increase the speed of the calculation on Single Processor

大家好, 我在单核处理器上重新发布关于多线程的问题。

原始问题是: Will Multi threading increase the speed of the calculation on Single Processor

我被问到一个问题,在任何给定时间,只允许一个线程在单个核心上运行。如果是这样,为什么人们在应用程序中使用多线程。假设您正在运行控制台应用程序,并且很可能编写要在主线程上运行的应用程序。但人们仍然会选择多线程。

1 个答案:

答案 0 :(得分:3)

“纯”CPU工作可能不会更快,但许多任务涉及不在CPU上的事情(例如,访问文件系统,网络,与用户交互等)。即使在单核系统上,使用多个线程也可以让一个线程等待文件系统访问,一个等待网络操作,一个等待用户响应等等。

因此,虽然使用多个线程不会使CPU密集型流程更快,但可以使您的应用程序更具响应性(也就是说,它可以“更快”地响应用户交互,因为它没有被阻止等待网络操作完成,比如说。)

请注意,技术异步操作甚至比使用多个阻塞线程更快(因为您没有上下文切换的开销),但是多个阻塞线程范例通常比异步编程更容易理解。