当前位置: 首页 > news >正文

备案网站可以做影视站贵港seo

备案网站可以做影视站,贵港seo,wordpress手机端显示,前端直播网站怎么做1.概述 Qt Concurrent是Qt提供的一个并发编程框架#xff0c;用于简化多线程和并行计算的开发。它提供了一组易于使用的函数和类#xff0c;可以方便地在多线程环境下处理并发任务。 有以下特点#xff1a; 简单易用#xff1a;Qt Concurrent提供了一组高级函数和类用于简化多线程和并行计算的开发。它提供了一组易于使用的函数和类可以方便地在多线程环境下处理并发任务。 有以下特点 简单易用Qt Concurrent提供了一组高级函数和类使多线程和并行计算变得简单易用。开发者无需显式地创建和管理线程而是通过调用Qt Concurrent提供的函数实现并发任务。 自动任务分割Qt Concurrent能够根据可用的线程数自动将大的问题拆分成更小的任务并分配给不同的线程并行执行。这样能够最大程度地利用系统资源提高并发执行效率。 异步计算Qt Concurrent提供了异步执行任务的机制可以在后台执行任务同时不会阻塞主线程从而提高用户界面的响应性。 主要的类和函数 QFuture表示一个异步任务的未来结果。可以通过调用QFuture的result()方法来获取结果。还可以使用QFutureWatcher类来监视并处理异步任务的结果。QFutureIterator用于遍历QFuture所代表的异步任务的结果集合。QThreadQt Concurrent内部会自动管理线程不需要手动创建和管理线程。但如果需要更细粒度的控制线程的操作可以使用QThread类。QtConcurrent::run()用于在后台线程执行函数。它会自动创建一个新的线程并在该线程中执行指定的函数。QtConcurrent::map()用于并行计算将一个函数应用于一个容器中的每个元素并返回结果集。它会根据可用的线程数自动进行任务分割和分配。QtConcurrent::filter()根据指定的谓词函数在容器中筛选符合条件的元素。也会进行任务分割和分配。QtConcurrent::blockingMapped()与map类似但是会阻塞当前线程直到所有任务完成。 2.常用方法 在 pro 文件添加“Qt concurrent”并且在我们的 h 文件添加“#include QtConcurrent”就可以使用这些函数了。基本上所有的 concurrent 函数分为三种类型 run 相关执行函数用map 相关处理容器中的每一项filter 相关筛选容器中的每一项。 run方法创建一个新的线程并在该线程中执行指定的函数。 QFutureT run(Function function, ...)QFutureT run(QThreadPool *pool, Function function, ...) map方法在单独的线程里对容器中的每一项进行操作并返回结果集。 QtConcurrent::map()直接操作容器中的每一项。QtConcurrent::mapped()操作容器中的每一项将处理结果返回一个新的容器原容器不变。QtConcurrent::mappedReduced()在 mapped() 的基础上将处理结果进一步传递给一个函数继续处理。 filter方法filter 相关函数和 map 相关函数类似也是对容器中的元素进行处理但 filter 更多侧重筛选元素。 QtConcurrent::filter()QtConcurrent::filtered()QtConcurrent::filteredReduced() 3.示例 示例1将普通函数运行在两个不同的线程中使用QFuture的result()方法来获取返回结果。 #include QApplication #include QFuture #include QtConcurrentQString func1() {qDebug()我是func1函数; } QString func2(QString name) {qDebug()我是func2函数;return name; }int main(int argc, char *argv[]) {QCoreApplication a(argc, argv);//用QFuture获取该函数的运行结果QFutureQString fut1 QtConcurrent::run(func1);//参数2向func函数传递的参数QFutureQString fut2 QtConcurrent::run(func2, QString(func2));QString result2 fut2.result();fut1.waitForFinished();fut2.waitForFinished();qDebug()result2 result2;return a.exec(); } 运行结果 示例2 使用QtConcurrent::map()QtConcurrent::mapped() QtConcurrent::mappedReduced() map直接操作容器中的每一项不返回。 mapped操作容器中的每一项将处理结果返回一个新容器原容器不变。 mappedReducedmapped() 的基础上将处理结果进一步传递给下一个函数继续处理。 #include mainwindow.h #include ui_mainwindow.h #include QDebug #include QFuture #include QtConcurrentvoid processString1(QString str) {str str.toUpper(); //转大写 }QString processString2(const QString str) {// 模拟一些复杂的处理逻辑QThread::msleep(1000); // 延迟1秒return str.toUpper(); //转大写 }void processString3(QString result, const QString intermedia) {result ;result intermedia; }MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui-setupUi(this);QStringList strings1 {hello, world, qt, concurrent};QFuturevoid fut1 QtConcurrent::map(strings1, processString1);fut1.waitForFinished();qDebug()result1;for(const QString result : strings1) {qDebug() result;}qDebug()result1;qDebug()result2;QStringList strings2 {hello, world, qt, concurrent};QFutureQString future QtConcurrent::mapped(strings2, processString2);future.waitForFinished();QListQString results future.results();for(const QString result : results) {qDebug() result;}qDebug()result2;qDebug()result3;QStringList strings3 {hello, world, qt, concurrent};QFutureQString future2 QtConcurrent::mappedReduced(strings3, processString2,processString3);future2.waitForFinished();QListQString results2 future2.results();for(const QString results : results2) {qDebug() results;}qDebug()result3; }MainWindow::~MainWindow() {delete ui; }运行结果 示例3使用QFutureWatcher来监视并处理异步任务的结果。 #include mainwindow.h #include ui_mainwindow.h #include QDebug #include QFuture #include QtConcurrent #include QFutureWatcherQFutureWatcherQStringList watcher;QStringList processString(const QStringList str) {// 模拟一些复杂的处理逻辑QThread::msleep(1000); // 延迟1秒QStringList ret;for(int i0;istr.size();i){ret.append(str.at(i).toUpper());}return ret; }MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow) {ui-setupUi(this);QStringList strings {hello, world, qt, concurrent};QFutureQStringList future QtConcurrent::run(processString, strings);watcher.setFuture(future);QObject::connect(watcher, QFutureWatchervoid::finished, this, []() {qDebug() All tasks finished!;for(const QString result2 : watcher.result()) {qDebug() result2;}});QObject::connect(watcher, QFutureWatchervoid::progressValueChanged, [](int value) {qDebug() Progress: value %;});}MainWindow::~MainWindow() {delete ui; }运行结果
http://www.w-s-a.com/news/260742/

相关文章:

  • 哪个网站做logo设计我的建筑网
  • php电子商务网站开发沂源手机网站建设公司
  • html和php做网站哪个好3gcms企业手机网站整站源码asp
  • 网站建设网页设计案例云南建设厅网站删除
  • 杏坛网站制作太原做网站要多少钱呢
  • 做新闻类网站还有市场吗东莞黄页网广告
  • 地方网站做外卖专业做互联网招聘的网站有哪些
  • 网站推广公司兴田德润紧急网页升级紧急通知
  • 厦门做网站哪家强企业网站网页设计的步骤
  • 普拓网站建设济南行业网站建设
  • 燕郊 网站开发网站里的地图定位怎么做
  • 门户网站建设招标互联网创业项目概述
  • 用什么做网站比较好市场调研公司是做什么的
  • 电商网站充值消费系统绍兴网站优化
  • 深圳网站建设公司联虚拟币交易网站开发
  • 专业网站设计建设公司抖音代运营公司排名前十强
  • 做网站架构肃北蒙古族自治县建设局网站
  • 推广网站怎么建经济研究院网站建设方案
  • 网站建设商家淘宝客自建网站做还是用微信qq做
  • django做网站效率高吗涉县移动网站建设报价
  • 做外贸网站注册什么邮箱能够做渗透的网站
  • 购物网站 怎么做织梦网站会员功能
  • 北京市网站开发公司郑州联通网站备案
  • 温岭专业营销型网站建设地址wordpress小程序怎么不用认证审核
  • 网站建设主体设计要求微信公众号缴费
  • 网站建设的税率WordPress多用户建站
  • 专业门户网站的规划与建设网络培训
  • 东莞汽车总站停止营业crm管理系统在线使用
  • 深圳网站建设公司哪个网络优化是做什么的
  • 大连地区做网站自己怎么做电影网站