首页  >  问答  >  正文

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

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

PHP中文网PHP中文网2765 天前775

全部回复(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
  • 取消回复