2010-05-24 86 views
1

可能重复:
Will Multi threading increase the speed of the calculation on Single Processor控制台机应用与多线程

您好所有, 我重新发布我的多线程问题的单核处理器。

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

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

+2

投票结束为确切的重复 - 我看不出为什么你再问这个。 – 2010-05-24 06:12:11

+0

你好乔恩,我想我没有正确地表达我的问题。我也修改了这个问题。但人们也没有回答这个编辑的问题。所以我再次贴出来指向旧的queston。希望这一次,我正确地发布了这个问题。请允许用户发表他们的评论。谢谢。 – Harsha 2010-05-24 06:53:32

回答

3

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

因此,虽然使用多线程不会使CPU密集型进程更快,但它可以使您的应用程序更具响应性(也就是说,它可以更快地响应用户交互,因为它不会阻塞等待网络操作完成,说)。请注意,技术上异步操作将比使用多个阻塞线程更快(因为您没有上下文切换的开销),但多个阻塞线程范例通常比异步编程更易于理解。

+0

感谢您的回复。但我想知道异步操作如何比多线程更好。如果我没有错,异步操作在不同的线程上运行。再次,必须有上下文切换权利。请发布文章链接或有关异步编程如何比多线程更好的解答。 谢谢你的时间。 – Harsha 2010-05-24 06:50:29