【问题标题】:Running a function right after each context switch, in C under windows-XP每次上下文切换后立即运行一个函数,在 windows-XP 下的 C 中
【发布时间】:2013-02-14 06:39:15
【问题描述】:

我正在 windows-XP 下用 C 语言编写一个多线程应用程序。 我正在寻找一种运行函数的方法,就在应用程序线程之间的每次上下文切换之后(并且就在新线程开始之前)。 更准确地说,我想在某个内存地址中分配一个不同的值,具体取决于我进入的线程。

有什么建议吗?

【问题讨论】:

  • 您在寻找线程本地存储吗?

标签: c multithreading windows-xp context-switch


【解决方案1】:

在每次上下文切换后立即运行一个函数

这从一开始就注定了:你无法控制上下文切换。如果刚刚调用您的函数时操作系统切换会发生什么?然后转回来?再次处决?

如果您想要的只是为每个线程提供具有特定内容的变量,请按照其他建议查看线程本地存储。

如果您需要对子进程计算和调度进行细粒度和绝对控制,请使用fibers。但这不是你心平气和的事情......

【讨论】:

  • +1 是的 - 听起来像是一个有用的功能,但没有操作系统支持它 - 这是有原因的!
  • 非常感谢您的回答。我想我会找到解决问题的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-12
  • 2021-12-07
相关资源
最近更新 更多