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

什么叫网站建设银行网站查询密码

什么叫网站,建设银行网站查询密码,视频网站上市公司有哪些,app网站开发成本C11中的std::async是个模板函数。std::async异步调用函数#xff0c;在某个时候以Args作为参数(可变长参数)调用Fn#xff0c;无需等待Fn执行完成就可返回#xff0c;返回结果是个std::future对象。Fn返回的值可通过std::future对象的get成员函数获取。一旦完成Fn的执行11中的std::async是个模板函数。std::async异步调用函数在某个时候以Args作为参数(可变长参数)调用Fn无需等待Fn执行完成就可返回返回结果是个std::future对象。Fn返回的值可通过std::future对象的get成员函数获取。一旦完成Fn的执行共享状态将包含Fn返回的值并ready。 std::async有两个版本 1.无需显示指定启动策略自动选择因此启动策略是不确定的可能是std::launch::async也可能是std::launch::deferred或者是两者的任意组合取决于它们的系统和特定库实现。 2.允许调用者选择特定的启动策略。 std::async的启动策略类型是个枚举类enum class launch包括 1. std::launch::async异步启动一个新的线程调用Fn该函数由新线程异步调用并且将其返回值与共享状态的访问点同步。 2. std::launch::deferred延迟在访问共享状态时该函数才被调用。对Fn的调用将推迟到返回的std::future的共享状态被访问时(使用std::future的wait或get函数)。 参数Fn可以为函数指针、成员指针、任何类型的可移动构造的函数对象(即类定义了operator()的对象)。Fn的返回值或异常存储在共享状态中以供异步的std::future对象检索。 参数Args传递给Fn调用的参数它们的类型应是可移动构造的。 返回值当Fn执行结束时共享状态的std::future对象准备就绪。std::future的成员函数get检索的值是Fn返回的值。当启动策略采用std::launch::async时即使从不访问其共享状态返回的std::future也会链接到被创建线程的末尾。在这种情况下std::future的析构函数与Fn的返回同步。 std::future介绍参考C11中std::future的具体使用方法_C 语言_脚本之家 详细用法见下面的测试代码下面是从其他文章中copy的测试代码部分作了调整详细内容介绍可以参考对应的reference #include iostream #include future #include chrono #include utility #include thread #include functional #include memory #include exception #include numeric #include vector #include cmath #include string #include mutexnamespace future_ {///// reference: http://www.cplusplus.com/reference/future/async/int test_async_1(){auto is_prime [](int x) {std::cout Calculating. Please, wait...\n;for (int i 2; i x; i){if (x%i 0){return false;}return true;}};// call is_prime(313222313) asynchronously:std::futurebool fut std::async(is_prime, 313222313);std::cout Checking whether 313222313 is prime.\n;// ...bool ret fut.get(); // waits for is_prime to returnif (ret) std::cout It is prime!\n;else std::cout It is not prime.\n;return 0;}///// reference: http://www.cplusplus.com/reference/future/launch/int test_async_2(){auto print_ten [](char c, int ms) {for (int i 0; i 10; i) {std::this_thread::sleep_for(std::chrono::milliseconds(ms));std::cout c;}};std::cout with launch::async:\n;std::futurevoid foo std::async(std::launch::async, print_ten, *, 100);std::futurevoid bar std::async(std::launch::async, print_ten, , 200);// async get (wait for foo and bar to be ready):foo.get(); // 注注释掉此句也会输出*bar.get();std::cout \n\n;std::cout with launch::deferred:\n;foo std::async(std::launch::deferred, print_ten, *, 100);bar std::async(std::launch::deferred, print_ten, , 200);// deferred get (perform the actual calls):bar.get();foo.get(); // 注注释掉此句则不会输出**********std::cout \n;return 0;}///// reference: https://en.cppreference.com/w/cpp/thread/asyncstd::mutex m;struct X {int testxx;void foo(int i, const std::string str) {std::lock_guardstd::mutex lk(m);std::cout str i \n;}void bar(const std::string str) {std::lock_guardstd::mutex lk(m);std::cout str \n;}int operator()(int i) {std::lock_guardstd::mutex lk(m);std::cout i \n;return i 10;}};template typename RandomItint parallel_sum(RandomIt beg, RandomIt end){auto len end - beg;if (len 1000)return std::accumulate(beg, end, 0);RandomIt mid beg len / 2;auto handle std::async(std::launch::async, parallel_sumRandomIt, mid, end);int sum parallel_sum(beg, mid);return sum handle.get();}int test_async_3(){std::vectorint v(10000, 1);std::cout The sum is parallel_sum(v.begin(), v.end()) \n;X x;x.testxx 8;// Calls (x)-foo(42, Hello) with default policy:// may print Hello 42 concurrently or defer executionauto a1 std::async(X::foo, x, 42, Hello);// Calls x.bar(world!) with deferred policy// prints world! when a2.get() or a2.wait() is calledauto a2 std::async(std::launch::deferred, X::bar, x, world!);// Calls X()(43); with async policy// prints 43 concurrentlyauto a3 std::async(std::launch::async, X(), 43);std::this_thread::sleep_for(std::chrono::seconds(2));a2.wait(); // prints world!std::cout a3.get() \n; // prints 53return 0;} // if a1 is not done at this point, destructor of a1 prints Hello 42 here///// reference: https://thispointer.com/c11-multithreading-part-9-stdasync-tutorial-example/int test_async_4(){using namespace std::chrono;auto fetchDataFromDB [](std::string recvdData) {// Make sure that function takes 5 seconds to completestd::this_thread::sleep_for(seconds(5));//Do stuff like creating DB Connection and fetching Datareturn DB_ recvdData;};auto fetchDataFromFile [](std::string recvdData) {// Make sure that function takes 5 seconds to completestd::this_thread::sleep_for(seconds(5));//Do stuff like fetching Data Filereturn File_ recvdData;};// Get Start Timesystem_clock::time_point start system_clock::now();std::futurestd::string resultFromDB std::async(std::launch::async, fetchDataFromDB, Data);//Fetch Data from Filestd::string fileData fetchDataFromFile(Data);//Fetch Data from DB// Will block till data is available in futurestd::string object.std::string dbData resultFromDB.get();// Get End Timeauto end system_clock::now();auto diff duration_cast std::chrono::seconds (end - start).count();std::cout Total Time Taken diff Seconds std::endl;//Combine The Datastd::string data dbData :: fileData;//Printing the combined Datastd::cout Data data std::endl;return 0;}} // namespace future_
http://www.sadfv.cn/news/56897/

相关文章:

  • 商城网站开发项目文档小企业财务软件免费版
  • 做网站需要准备什么东西wordpress搜索页自定义
  • 让别人做网站图片侵权广西住房城乡和建设厅网站
  • php做网站框架wordpress教程文档下载
  • 网站php怎么做的甘肃兰州海拔多少米
  • 河北网站开发费用宁波最好的推广平台
  • 沈阳网站设计外包建设外贸英文网站
  • 电子商务网站建设作业代码泉州网站开发公司
  • 怎样做购物网站wordpress自动空格
  • 旅游网站建设现状简单的企业网站模板
  • 随州网站建设优化推广渠道纪检网站建设
  • 类似非小号的网站怎么做wordpress 页面403
  • 企业网站seo数据网站上放百度地图怎么
  • 我国档案网站建设比较分析义乌厂家直接免费外发手工活
  • 做快消品的网站网页设计素材网站有哪些
  • 网站wap怎么做地推网
  • 微商城网站建设策划方案大连自助建站软件
  • 苏州技术馆网站建设怎么做推广和宣传
  • 网站建设报价网站建设报价单全国十大代理记账公司
  • 做网站有什么要求使用cn域名做网站的多吗
  • 网站建设二级页面方案韩国能否出线
  • 找人做网站被骗安徽网站建设推荐
  • 长沙网站设计培训机构网页制作工具分哪两类
  • 手机类网站设计全屏响应式网站建设
  • 用wordpress搭建网站天津东丽做网站
  • 黄的网站建设黑龙江建设人力资源网站
  • 电商广告推广友情链接seo
  • 企业网站模板包含什么品牌推广策略ppt
  • 长沙网站设计培训南山的网站建设公司
  • 网站建设厂家昆明发布最新通告