Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用线程更改值打印堆栈_Java - Fatal编程技术网

Java 使用线程更改值打印堆栈

Java 使用线程更改值打印堆栈,java,Java,我如何知道线程何时停止,处理器何时移到另一个线程。。 线程之间的转换会影响我的计算,有没有办法知道线程是否离开并返回到我的函数?您无法知道线程何时停止,系统何时重新调度了另一个线程 但是-通过将线程的关联性设置为其中一个处理器,并将其他线程的关联性设置为其他处理器,可以将此事件发生的次数降至最低 如果您使用的是Linux,那么您可以为系统中的每个线程使用(通过“ps-e”获取列表)来设置其他线程与其他处理器的关系 这将减少处理器上的负载,并使其切换上下文的次数减少。简单的答案是-你不能。即使您可

我如何知道线程何时停止,处理器何时移到另一个线程。。
线程之间的转换会影响我的计算,有没有办法知道线程是否离开并返回到我的函数?

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

但是-通过将线程的关联性设置为其中一个处理器,并将其他线程的关联性设置为其他处理器,可以将此事件发生的次数降至最低

如果您使用的是Linux,那么您可以为系统中的每个线程使用(通过“ps-e”获取列表)来设置其他线程与其他处理器的关系


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

简单的答案是-你不能。即使您可以检测到线程上下文切换,它也会频繁发生,无法有效地记录


一个更好的问题是看看你为什么需要知道。如果有问题,请将其作为问题发布,我们可以解决真正的问题。

您想做什么。如果线程之间的转换损害了您的计算,那么您确实需要重新设计代码,使其成为线程安全的。关于如何通过组合局部变量和线程局部变量、同步块和一些新的固有原子类来实现这一点,有很多教程信息可供参考。发布代码的相关部分,并描述您遇到的确切问题。如果没有它,你的帖子很快就会被关闭。如果你想知道你的线程被排定了多少次,你可以使用perf工具:同样,只有在Linux中。。。