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

博山做网站苏州网站建设永阳网络

博山做网站,苏州网站建设永阳网络,做个小网站大概多少钱,出口贸易网站什么是协程 协程#xff08;Coroutine#xff09;是程序组件#xff0c;可以在执行过程中暂停并在稍后继续执行。与传统的子例程#xff08;如函数或过程#xff09;不同#xff0c;子例程一旦调用#xff0c;必须等其返回后才能继续执行调用它的代码。协程则可以在执行…什么是协程 协程Coroutine是程序组件可以在执行过程中暂停并在稍后继续执行。与传统的子例程如函数或过程不同子例程一旦调用必须等其返回后才能继续执行调用它的代码。协程则可以在执行过程中暂停将控制权交还给调用者并且可以在稍后从暂停的地方继续执行。 协程的关键特性包括 可以在执行过程中暂停和恢复这使得协程能够在需要的时候让出控制权然后在适当的时候恢复执行。保持状态协程在暂停时会保存其当前的执行状态包括局部变量和程序计数器在恢复时可以从上次暂停的地方继续执行。协同调度协程由程序显式控制切换通常不依赖于操作系统内核的调度器减少了上下文切换的开销。 适用场景 协程特别适用于以下场景 I/O密集型任务协程可以在等待I/O操作完成时暂停执行而不阻塞线程从而提高并发性能。异步编程协程使得异步编程更加直观和简洁通过异步函数和等待机制可以避免复杂的回调地狱。生成器和迭代器协程可以用来实现生成器允许在迭代过程中产生值并在下次调用时继续执行。协作式多任务协程可以用于实现轻量级的任务调度通过显式的控制切换实现多任务的协作运行。状态机协程可以通过暂停和恢复的机制自然地实现复杂的状态机逻辑。 C中的协程 C20标准引入了对协程的支持使得开发者可以使用协程来简化异步编程和并发任务。C协程的基本概念包括 协程函数以co_return结束的函数可以包含co_await表达式。协程句柄表示协程的当前状态允许暂停和恢复执行。承诺类型Promise Type定义了协程的行为包括创建、暂停和恢复协程的方法。 示例代码 以下是一个使用C20协程的简单示例 #include iostream #include coroutine #include thread #include chronostruct Timer {struct promise_type;using handle_type std::coroutine_handlepromise_type;struct promise_type {Timer get_return_object() { return {}; }std::suspend_always initial_suspend() { return {}; }std::suspend_always final_suspend() noexcept { return {}; }void return_void() {}void unhandled_exception() { std::terminate(); }};std::chrono::milliseconds duration;Timer(std::chrono::milliseconds duration) : duration(duration) {}bool await_ready() const { return false; }void await_suspend(std::coroutine_handle h) const {std::thread([h, duration this-duration]() {std::this_thread::sleep_for(duration);h.resume();}).detach();}void await_resume() {} };Timer sleep_for(std::chrono::milliseconds duration) {return Timer(duration); }struct MyCoroutine {struct promise_type {MyCoroutine get_return_object() { return {}; }std::suspend_never initial_suspend() { return {}; }std::suspend_always final_suspend() noexcept { return {}; }void return_void() {}void unhandled_exception() { std::terminate(); }}; };MyCoroutine my_coroutine() {std::cout Hello, ;co_await sleep_for(std::chrono::seconds(1));std::cout World! std::endl; }int main() {auto coroutine my_coroutine();std::this_thread::sleep_for(std::chrono::seconds(2));return 0; }解释 promise_type定义协程的行为包括初始挂起和最终挂起、返回值和异常处理。co_await用于暂停协程的执行。awaiter结构体定义了挂起和恢复协程的逻辑。resume用于恢复协程的执行。 适用需求场景 网络编程协程非常适合处理大量的并发连接例如实现高性能的网络服务器。实时系统协程可以用于实现协作式调度满足实时系统对低延迟和高响应性的需求。游戏开发游戏开发中的许多逻辑可以通过协程简化例如处理动画、AI决策和物理模拟等。文件和数据库I/O任何需要异步处理文件I/O或数据库操作的场景都可以通过协程来简化代码和提高性能。并行计算协程可以用于实现并行计算任务例如数据处理和科学计算充分利用多核处理器的能力。 通过使用协程C开发者可以编写更加简洁、高效的异步代码同时减少上下文切换带来的开销提升程序的并发性能。
http://www.dnsts.com.cn/news/31032.html

相关文章:

  • 有没有专门做家乡图片的网站杭州滨江区建设局网站
  • 网站建设思路梳理可以做ppt的网站有哪些方面
  • 广州市 网站建设 有限公司关于茶文化网站建设的背景
  • 去哪里找做网站海尔电子商务网站建设情况
  • 化妆品网站推广策划书软件开发人员犯罪
  • 电子商务网站的整个建设流程精密电子东莞网站建设技术支持
  • 宁波模板建站多少钱创立公司网站
  • 快速做网站流量数据统计分析东莞常平邮政编码多少
  • 电商网站的好处汕头市澄海区
  • 怎样做网站排名人才招聘网站开发+源代码
  • 有哪些免费建站的网站万网域名抢注
  • 重庆seo网站建设优化小型crm系统
  • 微信网站的好处怎么用python做网页
  • 设计网站欣赏没人愿意干的68个暴利行业
  • ui设计的推荐网站及网址龙岗公司网站建设
  • 苏州做网站优化万能浏览器官方免费版
  • 网站开发外包公司坑如何设计出一个好网站
  • 开发软件网站槐荫区网络营销seo
  • 网站代码 上传 wordpress 空间网页图片尺寸
  • 中国桥梁建设网站最新热搜榜
  • 网站设计大公司网站建设方案书 模版
  • 内部网站的作用邢台新引擎网络
  • 行业网站建设策划方案电子商务网站建设调研报告
  • 郑州电商网站建设wordpress产品图片大小不一
  • 昌做网站太原市建设厅网站
  • 网站支付接口免费网站素材下载
  • 建设环境竣工验收网站沭阳做网站公司排名前十
  • 郑州网站建设哪家最好云虚拟主机怎么做2个网站
  • 网站建站去哪找客户免费浏览外国网站的软件
  • 有没有专业做淘宝网站wordpress 4.9.1