微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java:执行顺序混乱,不涉及多线程

如何解决java:执行顺序混乱,不涉及多线程

Lucieta Spinelli
Bryn Mawr College
8
9
8
7
8
8
8
2.5
7 8 7 6 7 7 6 3.7
8
7
6
7
7
6
8
3.2
LiPing Sun
Rutgers
University
6.5
5
9.5
7.5
8
8.5 7 2.3
7 9 7.5 9 8.5 6.5 8 2.6
6
4
5
9
7
8
6
3.0
Greg McEntire
University
of
Southern
California
9
8
8.5
9.5 9 9.5 7 2.3
9 7 8 8 7.5 8.5 7.5 2.6
8
8
8
8
8
8
8
3.4
Shiva Vadaparthy
northwestern
University
9
8
9.5
9.5
7.5
8 8.5 3.0
8 9 8.5 7.5 9 8.5 8 3.6
7.5
9
8
7
8.5
8
7
4.1
Elizabeth Bennet
Oxford
University
7
8
9
8
7
7 8 2.4
8 8 6 7 9 7 8 2.7
8
7
8
6
9
8
9
3.0
Sofia Berrios
Universidad
Simon
Bolivar
8.5
7.5
9.5
9
7 8.5 8 2.4
8 7 8 9 8 6 7 3.0
7
5.5
6.5
7
5
6.5
7
3.6
Amir Majid
Reed
College
4
5
6
5
3
5 7 2.8
7 6 7 8 7 9 8 2.9
8
9
7
9
8.5
8
9
3.4
James Pajuio
University
of
Pennsylvania
8
7
8
9
8 6 7 2.8
7.5 9 8 7 8.5 8 7 3.0
7.5
9
8
7
8.5
8
7
4.3
Sharon Lewis
Howard
University
8
9
9.5
9
8.5
8 9 2.7
4 5 5.5 7 6.5 4.5 5 3.2
8
7
8
9
8
8
7
4.0
Divya Patel
Temple
University
7
9
7.5
9
8.5
6.5 8 2.1
8 7 8 6 9 8 9 2.3
3.5
5.5
4
5
3
4
4.5
4.3
Guo Zhang
Portland
State
University
5
6
5.5
7
6.5 7 5.5 6 3.0
8 7 8.5 9 7.5 8.5 8 3.2
9
8
9.5
8.5
9
8.5
9.5
4.1
Tomasz Wojaczyk
Tufts
University
8
8
7
8
7
8 7 2.6
5 4 5 6 7 5 5 2.9
8
6
6
7
8
7
6
3.6

预期:3行m1日志,然后是3 m2日志

实际:有时会在m1个日志之间打印m2日志

这仅发生在我同事的计算机中的一个,而不是其他任何人的

即使在他的机器上,也只会发生10次尝试中的 2或3次

当执行顺序混乱时,我们查看了日志,B 哈希代码的对象相同,并且线程ID 相同

因此,它在一个线程内 ,在一个对象上 执行顺序变得混乱

在这里显示代码,而不是实际的完整代码,因为即使使用真实代码,我也无法在其他机器上稳定地重现该问题。

有什么理由会发生这种情况吗?是否有任何隐藏的jvm机密可能导致这种情况?

我同事计算机上使用的jdk是1.8.0_131。在我的机器上也一样,但是我的问题无法重现。

2020-09-21更新

将堆栈跟踪信息添加到以m2为单位的日志行中,

显示每次调用m2,在堆栈跟踪中,它的调用方是在ClassA中调用m1的行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。