在多线程Java应用程序中,如果我想识别上下文从一个线程切换到另一个线程的指令,那么最佳方法是什么?检测每条指令以识别正在执行指令的线程将给出近似的近似值。例如,如果在执行检测之后和实际instr之前发生切换。执行后,结果将是不精确的。
有没有办法精确识别Java中的上下文切换位置(对于不同的运行会有所不同)?
识别此问题最具成本效益的是什么?
答案 0 :(得分:1)
您的问题的简短回答是You can not do it in java
.JVM负责根据底层操作系统和内存模型切换上下文。
答案 1 :(得分:0)
大多数上下文切换都是由外部中断(包括定时器)引起的。它可以在any
指令处发生。实际上,分配不均匀,而是非常随机。即使您可以为每条指令收集上下文切换的概率分布,您将如何使用它?看起来你试图用不充分的手段解决一些问题。更好地说明你的真正问题是什么,我们试图建议一个解决方案。