Qt 多线程探秘2--Qt Concurrent

  很多东西存在很久但不切实使用并不能体会到它存在的深层的意义,往往这些是前人凝结出的精华而你的知识结构当前还不能体会。QFuture就是其中之一。
  Qt 多线程探秘1中使用QThread可以完成一个次线程执行的任务,虽然之需要少量的代码,这也是需要工作量的,要知道Qt其实早就有帮我们实现,这便是QFuture。
QFuture存在的意义应该就是能够便于监管线程(通过QFutureWatcher),这方面比较简单,不赘述,主要介绍如何实现探秘1中QThread完成的任务。于是就不得不引入QtConcurrent了(QFuture内部比较简单,应该一般不会主动new一个QFuture出来,而是通过QtConcurrent的静态方法产生一个QFuture,然后通过QFutureWatcher进行监控)。

  1. Concurrent Map and Map-Reduce
    QtConcurrent::map() applies a function to every item in a container, modifying the items in-place.
    QtConcurrent::mapped() is like map(), except that it returns a new container with the modifications.
    QtConcurrent::mappedReduced() is like mapped(), except that the modified results are reduced or folded into a single result.
  2. Concurrent Filter and Filter-Reduce
    QtConcurrent::filter() removes all items from a container based on the result of a filter function.
    QtConcurrent::filtered() is like filter(), except that it returns a new
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值