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

做外贸建网站/自创网站

做外贸建网站,自创网站,重庆水舟科技做网站,百度推广网站必须备案吗异步 异步编程是一种程序设计范式,​​允许任务在等待耗时操作(如I/O、网络请求)时暂停执行,转而处理其他任务,待操作完成后自动恢复​​。其核心目标是​​避免阻塞主线程​​,提升程序的并发性和响应速度…

异步

异步编程是一种程序设计范式,​​允许任务在等待耗时操作(如I/O、网络请求)时暂停执行,转而处理其他任务,待操作完成后自动恢复​​。其核心目标是​​避免阻塞主线程​​,提升程序的并发性和响应速度。

简单来说:就是不阻塞当前主线程,创建子线程,交给子线程操作

但是线程之前的数据通信较为麻烦所以有了以上操作函数和类

1.async

future类的作用是保存异步操作的结果,从而实现线程间的数据交换

deferred是同步,async是异步

aysnc(deferred/async, 函数名,参数);

#include<iostream>
#include<future>
#include<thread>
#include<chrono>
int add(int a,int b)
{std::cout<<"add "<<std::endl;return a+b;
}
int main()
{std::future<int> res =std::async(std::launch::async,add,10,11);std::this_thread::sleep_for(std::chrono::seconds(1));std::cout<<"---------------------"<<std::endl;std::cout<<"result: "<<res.get()<<std::endl;return 0;
}

执行结果:可以看到先执行了函数里的内容,没有因为主线程的sleep导致运行暂停

2.package_task

可以看到package_task相当于是对async进行了任务封装,

对于一个函数可以方便的重复调用

#include<iostream>
#include<future>
#include<thread>
#include<memory>
#include<chrono>
int add(int a,int b)
{std::cout<<"add "<<std::endl;return a+b;
}int main()
{auto task= std::make_shared<std::packaged_task<int(int,int)>>(add);std::future<int> ret=task->get_future();std::thread thr([&task](){(*task)(11,12);    });std::this_thread::sleep_for(std::chrono::seconds(1));std::cout<<"-------------"<<std::endl;std::cout<<"result: "<<ret.get()<<std::endl;;thr.join();return 0;
}

也是进行了一次异步操作

3.promise

对运行结果进行封装,在运行函数中将结果设置到promise中

#include <iostream>
#include <future>
#include <thread>
#include <memory>
#include <chrono>
int add(int a, int b)
{std::cout << "add " << std::endl;return a + b;
}
void task(std::promise<int> &prm)
{int ret = add(12, 3);std::this_thread::sleep_for(std::chrono::seconds(1));prm.set_value(ret);
}
int main()
{std::promise<int> prm;std::future<int> res = prm.get_future();std::thread thr([&prm](){ task(prm); });int ret = res.get();std::cout << "result: " << ret << '\n';thr.join();return 0;
}

运行结果

4.总结

http://www.whsansanxincailiao.cn/news/32013858.html

相关文章:

  • 哪些网站属于b2b平台/网站首页seo关键词布局
  • 2017做网站挣钱吗/杭州网络优化公司排名
  • 金融网站建设公司排名/2022黄页全国各行业
  • 设计兼职网站有哪些/最新重大新闻
  • 临沂做网站的/百度账号
  • 义乌做网站的公司哪家好/百度服务电话在线人工
  • 网站做的好/任务放单平台
  • 用pdf怎么做电子书下载网站/徐州seo建站
  • 凯里网站建设/河南郑州网站顾问
  • 网上商城有哪几个/seo是哪个英文的简写
  • 网站建设需要/关键词优化课程
  • 葫芦岛建设工程信息网站/如何免费注册一个网站
  • 网站界面设计要素/东莞做网站哪里好
  • 企业级网站建设/网络营销就是
  • 廊坊市做网站/seo关键词优化价格
  • 襄阳住房和城乡建设局网站首页/windows优化大师怎么彻底删除
  • 如何实现网站建设服务/互联网精准营销
  • 如何免费做网站优化/百度站长平台工具
  • 企业通过门户网站做营销推广/目前最牛的二级分销模式
  • 建设商城网站价格/世界最新新闻
  • 影楼网站制作/seo自动工具
  • 部队网站建设建议/湖南关键词优化排名推广
  • 企业服务公司是干什么的/搜索seo怎么优化
  • 湛江网站排名提升/方象科技专注于什么领域
  • 软件编程入门自学教程/外包seo公司
  • 保定模板建站哪家好/电商推广平台
  • 网站备案 强制/厦门seo优化
  • 建设银行网站登录没反应/360优化大师下载官网
  • 网站认证收费吗/简单免费制作手机网站
  • 网络营销的优化和推广方式/搜索引擎优化排名关键字广告