Ist es möglich, Multithread-Java-Anwendungen auf deterministische Weise auszuführen? Ich meine, immer den gleichen Threadwechsel in zwei verschiedenen Läufen meiner Anwendung zu haben."Kann nicht reproduzieren" - ist Java deterministisches Multithreading möglich?
Grund dafür ist, dass die Simulation in jedem Lauf unter genau denselben Bedingungen ausgeführt wird.
Ähnliche Fall ist, wenn man einige zufällige Seed bei der Verwendung von Zufallsgenerator, um immer die gleiche "zufällige" Sequenz zu erhalten gibt.
Thread-Scheduling durch das Betriebssystem gesteuert wird, nicht Java. –
Wenn Sie Ihren Code sorgfältig genug synchronisiert haben und nur von der verfügbaren Eingabe abhängig sind, sollte es immer so aussehen. (Oder, um es umzudrehen, wenn die Ergebnisse vom spezifischen Timing jedes Laufs abhängen, haben Sie Ihren Code nicht gut genug synchronisiert.) Je nachdem, was Sie wirklich benötigen, können Sie auch eine Echtzeit-Implementierung der Java VM versuchen. – biziclop
@biziclop, Wenn Ihr Programm so gründlich synchronisiert ist, haben Sie wahrscheinlich einige der Vorteile der Verwendung mehrerer Threads verloren. –