5

在多线程 Java 应用程序中,如果我想识别上下文从一个线程切换到另一个线程的指令,最好的方法是什么?检测每条指令以识别哪个线程正在执行该指令将给出一个接近的近似值。例如,如果切换发生在检测执行之后和实际指令之前。被执行,那么结果将是不精确的。

  • 有没有办法在 Java 中精确识别上下文切换位置(不同的运行会有所不同)?

  • 识别这一点最具成本效益的是什么?

4

2 回答 2

1

对您的问题的简短回答是You can not do it in java。JVM 有责任根据底层操作系统和内存模型切换上下文。

http://en.wikipedia.org/wiki/Thread_(计算)

于 2013-09-23T16:21:18.487 回答
0

大多数上下文切换是由外部中断(包括定时器)引起的。它可以在any指令中发生。事实上,分布并不均匀,而是非常随机。即使你可以收集每条指令的上下文切换的概率分布,你会如何使用它?看起来你试图用不充分的手段解决一些问题。最好告诉您真正的问题是什么,我们会尝试提出解决方案。

于 2013-09-23T17:12:29.923 回答