Lot*_*har 10 optimization multithreading
虽然我喜欢来自多核系统设计的智力挑战,但我意识到它们中的大多数只是不必要的过早优化.
但另一方面,通常所有系统都有一些性能需求,稍后将其重构为多线程安全操作很难甚至只是在经济上不可能,因为它将是另一种算法的完全重写.
您在优化和完成任务之间保持平衡的方法是什么?
如果您遵循Pipeline和Map-Reduce设计模式,那就足够了.
分解事物,以便您可以在OS级多处理管道中运行.
然后,您可以实际在实际管道中运行.没有额外的工作.OS处理一切.巨大的加速机会.
你也可以切换到线程.一点工作.操作系统处理其中的一些部分,线程库处理其余部分.但是,由于您在设计时考虑"进程",因此您的线程没有任何令人困惑的数据共享问题.一点思考的大赢.
我相信线程也遵循优化法则。
也就是说,不要浪费时间进行并行快速操作。
相反,将线程应用于需要很长时间执行的任务。
当然,如果系统开始拥有 1000 多个核心,那么这个答案可能会过时并且需要修改。但话又说回来,如果您要“把事情做好”,那么您肯定会希望在此之前发货您的产品。