Kann ein Programm mit mehreren Threads jemals deterministisch sein?
Normalerweise wird gesagt, dass Multi-Thread-Programme nicht deterministisch sind, was bedeutet, dass es nahezu unmöglich ist, den Fehler, der die Bedingung verursacht hat, wiederherzustellen, wenn es abstürzt. Man weiß nie genau, welcher Thread als nächstes laufen wird und wann er wieder vorbelegt wird.
Natürlich hat dies mit dem OS-Thread-Scheduling-Algorithmus zu tun und der Tatsache, dass man nicht weiß, welcher Thread als nächstes ausgeführt wird und wie lange er effektiv ausgeführt wird. Auch die Reihenfolge der Programmausführung spielt eine Roll
Aber was wäre, wenn Sie den Algorithmus für die Thread-Planung hätten und wenn Sie wissen könnten, wann welcher Thread ausgeführt wird, könnte ein Multithread-Programm dann "deterministisch" werden, wie in, und Sie könnten einen Absturz reproduzieren?