"无法重现" - Java确定性多线程可能吗?

sZp*_*pak 6 java multithreading deterministic

这是否可以以确定的方式运行多线程Java应用程序?我的意思是在我的应用程序的两个不同运行中始终使用相同的线程切换.

原因是在每次运行中以完全相同的条件运行模拟.

类似的情况是当使用随机数生成器获得总是相同的"随机"序列时,给出一些任意种子.

Ste*_*n C 4

我不知道有任何实际的方法可以做到这一点。

理论上,在某些假设下1可以实现具有完全确定性行为的字节码解释器。您需要通过完全在软件中实现线程和线程调度并使用单个本机线程来模拟多个线程。


1 - 例如,没有 I/O,并且不使用系统时钟。