gpt4 book ai didi

C++ 提升 :fiber - How can i interrupt a fiber or join waiting until a maximum time?

转载 作者:行者123 更新时间:2023-11-28 04:52:06 26 4
gpt4 key购买 nike

如何使用 C++ boost 停止(中断)光纤?

例如

fiber.stop()

我如何使用 c+ boost 执行 fiber join(time)(默认 api 不接受最长等待时间)? 例如:

fiber.join(1000);

有可能挂起一个纤程,在磁盘上序列化它,然后在系统中重新加载它吗?

最佳答案

boost.fiber 仿照 std::threads 的 API - 没有中断功能,也没有定时连接。

您不能序列化纤程,因为这意味着序列化纤程的堆栈,这是不可能的……至少在没有编译器支持的情况下是不可能的。

不推荐堆栈序列化,因为编译器必须注意指向分配在堆栈上的对象的指针,例如必须在相同的地址重新分配对象,或者必须在反序列化纤程(重新加载)后重写指针。

RAII 违规将很容易发生等......

关于C++ 提升 :fiber - How can i interrupt a fiber or join waiting until a maximum time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47948804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com