使用Thread更改值的打印堆栈

时间:2013-12-28 23:46:32

标签: java

如何知道线程何时停止并且处理器移动到另一个线程.. 线程之间的转换会损害我的计算,有一些方法可以知道线程是否离开并返回到我的函数?

2 个答案:

答案 0 :(得分:1)

您无法知道线程何时停止,系统重新安排了另一个线程。

但是 - 您可以通过将线程的 affinity 设置为其中一个处理器,以及将其他线程与其他处理器的关联性来最小化此事件发生的次数。

如果您使用的是Linux,则可以对系统中的每个线程使用taskset(通过“ps -e”获取列表),以将其他线程的相关性设置为其他处理器。

这将减少处理器的负载,并使其上下文切换次数减少。

答案 1 :(得分:1)

简单的答案是 - 你做不到。即使您可以检测到线程上下文切换,它也经常发生以至于无法进行有效记录。

更好的问题是看看你需要知道的原因。如果有问题,可以将其作为问题发布,我们可以解决实际问题。