搜尋

首頁  >  問答  >  主體

计算密集型的程序使用多线程可以提高性能吗?C++

没有大量的IO操作,主要是占用CPU,单核多核情况都有。C++11 thread
描述的不太清楚,其实想问的是如果我创建多个线程,这些线程的分配是怎样的?

PHP中文网PHP中文网2803 天前813

全部回覆(2)我來回復

  • 阿神

    阿神2017-04-17 13:19:09

    多執行緒不就是用來處理高並發的麼?這樣會提高處理速度啊,不然單線程處理到何年何月了

    回覆
    0
  • 大家讲道理

    大家讲道理2017-04-17 13:19:09

    cluster和pipeline模式.
    cluster模式適用於任務比較難拆分, 但是任務與任務之間沒有關聯, 比如zip文件, 多個文件之間並沒有關聯, 那麼我可以開四五個線程去zip不同的檔案.
    pipeline模式, 適用於那些任務先後順序可以拆分的, 把費時的操作抽出來, 用線程處理. 用那個zip文件的例子, 一個線程用來控制zip任務的分發, 多個線程去zip, zip好之後, 交給另外一個線程. 這個完整的任務, 就被拆分成3個階段, 這種模式就是pipeline.

    你的業務需要靈活運用這兩種最基本的設計模式

    回覆
    0
  • 取消回覆