如何提高线程运行速度?
我正做个程序,要进行大量的运算,如果用线程,计算的时间会更久。
假设每运算时要进行600次的计算,我在主程序中运行300次,另外300次用线程来运算,结果计算的时间在在主程序中一次计算600次还要久。不知道大亲们、大侠们能否指点一二高招!
[解决办法]
线程的目的在于模拟多道程序运行,也为解决I/O与CPU之间的速度差距,提升CPU的使用率。
在单处理器系统或单核处理器上,凡是认为线程能够提升运行速度的想法都是错误的。
如果你希望提升计算的速度,真正正确的做法是:
1、避免使用多线程;
2、保证CPU要使用的数据都在不可分页内存中;
3、将你的程序提升至DISPATCH_LEVEL irql运行。
[解决办法]
不妨改变一下线程优先级(priority)试试有什么变化。
[解决办法]
单处理器上线程只会降低处理速度,因为存在上下文切换开销。多处理器上由于同步互斥变量的需要也不会随处理器数线性提速。