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

建设网站具体的步骤wordpress获取当前页地址

建设网站具体的步骤,wordpress获取当前页地址,网上商城推广文案,巫山那家做网站C 异步编程#xff1a;std::async、std::future、std::packaged_task 和 std::promise 在现代 C 编程中#xff0c;异步编程已经成为一种常见的模式。利用 C11 引入的标准库组件 std::async、std::future、std::packaged_task 和 std::promise#xff0c;我们可以更方便地处…C 异步编程std::async、std::future、std::packaged_task 和 std::promise 在现代 C 编程中异步编程已经成为一种常见的模式。利用 C11 引入的标准库组件 std::async、std::future、std::packaged_task 和 std::promise我们可以更方便地处理多线程任务。本文将介绍这些组件的基本用法及其应用场景帮助你理解如何利用这些工具实现高效的异步编程。 1. std::future 和 std::promise std::future std::future 是一种用于获取异步计算结果的机制。它提供了一个等待异步任务完成并获取结果的方法。std::future 对象通过与 std::promise 结合使用允许线程安全地获取异步操作的结果或异常。 基本用法 #include iostream #include thread #include futurevoid async_task(std::promiseint prom) {std::this_thread::sleep_for(std::chrono::seconds(2)); // 模拟耗时操作prom.set_value(42); // 设置计算结果 }int main() {std::promiseint prom;std::futureint fut prom.get_future();std::thread t(async_task, std::ref(prom)); // 使用 std::ref 传递 promise 的引用t.detach(); // 线程分离允许在主线程中继续执行int result fut.get(); // 等待异步任务完成并获取结果std::cout Result: result std::endl;return 0; }解释 std::promiseint 创建一个 promise 对象用于设置值。std::futureint fut prom.get_future(); 从 promise 获取 future 对象。在异步线程中调用 prom.set_value(42); 设置结果。fut.get(); 阻塞当前线程直到结果可用。 std::promise std::promise 用于在异步操作中设置结果。它与 std::future 结合使用以便从线程中传递结果或异常。std::promise 对象只能被设置一次设置多次会引发异常。 基本用法 #include iostream #include thread #include futurevoid async_task(std::promiseint prom) {prom.set_value(42); // 设置计算结果 }int main() {std::promiseint prom;std::futureint fut prom.get_future();std::thread t(async_task, std::move(prom)); // 使用 std::move 转移 promiset.join(); // 等待线程完成int result fut.get(); // 获取异步任务的结果会阻塞直到结果可用std::cout Result: result std::endl;return 0; }解释 std::promiseint prom; 创建 promise 对象。std::futureint fut prom.get_future(); 获取 future 对象。在异步线程中通过 prom.set_value(42); 设置结果。fut.get(); 获取结果并阻塞当前线程。 2. std::packaged_task std::packaged_task 是一个可调用对象用于将任务的结果与 std::future 绑定。它允许你将一个普通的函数或函数对象封装为一个异步任务并从中获取结果。 基本用法 #include iostream #include thread #include futureint long_computation(int x) {std::this_thread::sleep_for(std::chrono::seconds(2)); // 模拟耗时操作return x * x; }int main() {std::packaged_taskint(int) task(long_computation); // 创建任务std::futureint fut task.get_future(); // 获取 future 对象std::thread t(std::move(task), 10); // 使用 std::move 转移任务并传递参数t.join(); // 等待线程完成int result fut.get(); // 获取异步任务的结果会阻塞直到结果可用std::cout Result: result std::endl;return 0; }解释 std::packaged_taskint(int) task(long_computation); 创建一个任务对象封装 long_computation 函数。std::futureint fut task.get_future(); 获取与任务关联的 future 对象。std::thread t(std::move(task), 10); 将任务移动到线程中并传递参数。fut.get(); 获取任务结果。 3. std::async std::async 是一种更高层次的异步操作工具它可以在后台线程中异步执行函数并返回一个 std::future 对象用于获取结果。它比手动创建线程更简单。 基本用法 #include iostream #include future #include chronoint long_computation(int x) {std::this_thread::sleep_for(std::chrono::seconds(2)); // 模拟耗时操作return x * x; }int main() {std::futureint fut std::async(std::launch::async, long_computation, 10); // 异步执行// 可以在这里做其他事情std::cout Doing other things while waiting for the result... std::endl;int result fut.get(); // 获取异步任务的结果会阻塞直到结果可用std::cout Result: result std::endl;return 0; }解释 std::async(std::launch::async, long_computation, 10); 异步执行 long_computation 函数并传递参数。fut.get(); 获取结果并阻塞当前线程直到结果可用。 总结 std::promise 用于设置异步操作的结果或异常。std::future 用于获取异步操作的结果或异常。std::packaged_task 封装函数为任务并与 std::future 结合使用。std::async 简化异步任务的创建和管理自动处理线程和任务。 通过理解和使用这些 C 标准库组件你可以更高效地进行异步编程管理复杂的任务和线程操作。
http://www.w-s-a.com/news/294062/

相关文章:

  • 襄樊最好网站建设价格网站建设与设计 毕业设计
  • 网站推广广告词大全集网站建设相对路径
  • 甘肃省铁路投资建设集团有限公司网站域名怎么实名认证
  • 企业网站建设的层次返利网站建设
  • 竞价单页网站制作中小企业网站建设问题
  • 响应式网站源码学校网站制作多少钱
  • 营销型网站建设需要懂什么网站建站四件套是什么
  • 廊坊哪里有制作手机网站的区块链开发语言
  • 找建设项目的网站装企工长网站开发
  • 戴尔网站建设成功方正网站制作
  • 怎么买网站域名wordpress 视频站模版
  • 厦门官网建设公司杨和关键词优化
  • 怎么做网约车seo自动优化软件下载
  • 遵义市住房和城乡建设局官方网站网站备案 自己的服务器
  • 分销系统价格多少北京网站优化平台
  • 怎样做旅游公司的网站泉州网站建设方案优化
  • 手机网站页面范例个人网站做淘宝客违规
  • 做一套网站开发多少钱SEO做得最好的网站
  • 咸宁做网站的公司那家便宜福建建设注册管理中心网站
  • 网站建设工作汇报黑科技广告推广神器
  • 淘宝做首页热点的什么网站徐州建设安全监督网站
  • 正规的镇江网站建设广州有什么好玩的东西
  • 丹阳网站设计公司网站开发 0755
  • 百度网页版浏览器网址找文网优化的技术团队
  • 信息网站怎么做做儿童网站赚钱吗
  • 帝国cms 网站迁移个人网站备案备注
  • 青岛做网站推广怎样做网站才不能被攻破
  • 使用网站模板快速建站教案杂志wordpress主题 无限加载
  • 南宁南宁做网站南安网络推广
  • 旌阳移动网站建设微网站 杭州