c++多线程编程中的异步与未来
发布时间
阅读量:
阅读量
async、future创建后台任务并返回值,希望线程返回一个结果。
async 是一种函数模板结构,在JavaScript中用于定义和执行异步操作。当调用 async 函数时会自动创建一个新的线程并立即执行其内部定义的功能模块(入口函数),然后返回的是 future 对象。
需要注意的是,在调用 async 函数时会返回的是 future 对象而不是立即执行功能模块本身。
这个 future 对象实际上代表了对某个操作结果的一个引用机制,并且这种机制允许我们间接地获取操作的结果而不必等待线程完成运行。
为了方便管理操作结果的具体值,在使用 get() 方法调用 future 对象时可以选择性地获取结果而不必等到线程运行完毕。
此外,在实际应用中我们还可以通过向 async 函数传递特殊的参数来实现一些特定的功能需求。
需要注意的是,在某些情况下必须强制将 async 事件驱动脚本转移到新的线程环境中以确保系统的稳定性与安全性。
Deferred标志用于指示线程入口函数调用被延迟至future.wait()或get()被激活时才会执行。当未使用wait()或get()进行操作时,在主线程中直接引用该接口的行为被认为是没有正确配置该机制的情况。Async标志则在调用async()函数时立即启动新子线程,默认情况下会生成相应的标识符来区分不同类型
全部评论 (0)
还没有任何评论哟~
