1

有没有办法执行抢占式同线程上下文切换?

我很确定这不是描述我正在寻找的内容的正确方式,所以这里有一个更长的描述:
我想要与 POSIXucontext_tboost::context. 可能还有其他我不知道的。我不知道它的官方术语,但基本上它们允许单线程多任务处理。这两个库都需要“协作”代码,即当前运行的“线程”必须显式执行上下文切换。
我正在寻找一种强制上下文切换的方法。我认为这必须从一个单独的线程(真正的操作系统线程)完成。我想要一组“上下文”,冻结执行路径,并能够切换到我选择的任何一个,冻结当前执行。

我不在乎解决方案是否为“切换器”使用单独的线程(我认为这是必需的)。
我对 Java/C#/C++/C 解决方案,或者 C/C++ 和一些最小程序集的组合很好。
我希望它是跨平台(Windows 和 Linux)和交叉编译器(GCC、MinGW 和 VS,假设为 ac/c++ 解决方案),但我知道这不太可能。至少它应该在至少有一个编译器的 Windows 上工作。
我几乎可以使用所需的任何库或兼容层(例如boost,或某种“Windows 上的 POSIX”层)

我希望这不是要求太多。

4

1 回答 1

1

boost.fiber - can be programmed like boost.thread but provides user-land threads

于 2012-12-03T15:44:58.650 回答