Um programa multiencadeado pode ser determinístico?

Normalmente, diz-se que os programas multiencadeados não são determinísticos, o que significa que, se travar, será quase impossível recriar o erro que causou a condição. Nunca se sabe realmente qual thread será executado a seguir e quando será antecipado novamente.

É claro que isso tem a ver com o algoritmo de agendamento de threads do SO e o fato de que não se sabe qual thread será executado a seguir e por quanto tempo ele será executado efetivamente. A ordem de execução do programa também desempenha um papel, etc ...

Mas e se você tivesse o algoritmo usado para o agendamento de encadeamentos e se pudesse saber quando o encadeamento está sendo executado, um programa com vários encadeamentos se tornaria "determinístico", como em, será possível reproduzir uma falha?

questionAnswers(7)

yourAnswerToTheQuestion