Qt Concurrent

简介


QtConcurrent命名空间提供了高级API,可以在不使用低级别线程原语(如互斥锁,读写锁,等待条件或信号量)的情况下编写多线程程序。 使用QtConcurrent编写的程序会根据可用的处理器内核数自动调整使用的线程数。 这意味着今后编写的应用程序将在未来部署到多核系统时可以充分利用更多的处理器内核。

依赖


如要使用QtConcurrent,需要在Qt工程中加入concurrent模块,在qmake中写入如下:

QT += concurrent

之后便可以在QtConcurrent命名空间使用。


基础梳理

QtConcurrent包含用于并行列表处理的函数式编程风格API,包括为共享内存(非分布式)系统所实现的MapReduceFilterReduce以及用于在GUI应用程序中管理异步计算的类:

  • Concurrent MapMap-Reduce
    • QtConcurrent::map()将函数应用于容器中的每个项目,并就地修改项目。
    • QtConcurrent::mapped()就像map(),不同之处在于它返回一个只包含修改内容的新容器。
    • QtConcurrent::mappedReduced()类似于mapped(),除了修改后的结果被减少或组合成单个结果。
  • Concurrent FilterFilter-Reduce
    • QtConcurrent::filter()根据过滤函数从容器中删除所有满足要求的项目。
    • QtConcurr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值