【问题标题】:Context switching in different thread不同线程中的上下文切换
【发布时间】:2012-11-19 22:59:06
【问题描述】:

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

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

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

我希望这不是要求太多。

【问题讨论】:

标签: multithreading concurrency multitasking


【解决方案1】:

boost.fiber - 可以像 boost.thread 一样编程,但提供用户级线程

【讨论】:

  • 我认为没有 boost.fiber。至少,我只是找了一下,没找到。
猜你喜欢
  • 2011-07-23
  • 1970-01-01
  • 2017-09-09
  • 2011-07-27
  • 1970-01-01
  • 2012-01-12
  • 2011-08-13
  • 2020-09-01
相关资源
最近更新 更多