如果我使用了多线程,我的应用程序是不是会跑的更快些?



主要软件: LabVIEW Development Systems>>LabVIEW Full Development System
主要软件版本: 8.0
主要软件修正版本: N/A
次要软件: N/A

问题: 如果我使用了多线程,我的应用程序是不是会跑的更快些?

解答:

这个取决于你的应用程序。如果你的应用程序中的任务顺序执行,你不会看到任何改善。比方说,你的程序打开文件,从文件中读取数据,然后关闭文件。多线程并不能使的应用程序跑的更快,因为上述操作不能同时发生。

在单处理器系统中,多个线程仍然共享CPU时间。因此多个很耗CPU的并行线程并不会因为它们线程化了而使计算进行的更快。事实上,他们可能运行的更慢,因为操作系统要花额外的时间进行线程间的切换。

在多处理器系统中,多线程在多数情况下都是利大于弊的,因为它允许多个耗CPU的线程同时运行。但是,在处理器上调度线程是操作系统的工作,它并不能总是保证你的应用程序的不同线程运行在不同的处理器上。

无论是单处理器还是多处理器系统,如果在耗CPU的线程和耗I/O的线程间共享时间总是有利的。当一个线程在读或者写网络(或者是GPIB,硬盘,DAQ设备),别的耗CPU的线程可以继续运行。在单线程系统中,在等待I/O操作完成的过程中,CPU经常处于闲置状态。



相关链接:

附件:





报告日期: 03/03/1998
最近更新: 01/18/2012
文档编号: DIRECT-3S8R24