gpt4 book ai didi

setjmp - 使用 setjmp、longjmp 进行多任务处理

转载 作者:行者123 更新时间:2023-12-03 13:59:52 27 4
gpt4 key购买 nike

有没有办法使用 setjmp 来实现多任务处理?和 longjmp职能

最佳答案

这是所谓的用户空间上下文切换的一种形式。

这是可能的,但很容易出错,特别是如果您使用 setjmp 和 longjmp 的默认实现。这些函数的一个问题是,在许多操作系统中,它们只会保存 64 位寄存器的子集,而不是整个上下文。这通常是不够的,例如在处理系统库时(我在这里的经验是使用 amd64/windows 的自定义实现,考虑到所有事情,它都非常稳定)。

也就是说,如果您不尝试使用复杂的外部代码库或事件处理程序,并且您知道自己在做什么,并且(尤其是)如果您在汇编程序中编写自己的版本以保存更多当前上下文(如果您'正在使用 32 位 windows 或 linux 这可能没有必要,如果您使用某些版本的 BSD,我想几乎肯定是这样),并且您调试它并仔细注意反汇编输出,那么您可能能够实现你要。

关于setjmp - 使用 setjmp、longjmp 进行多任务处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560792/

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