Может ли многопоточная программа быть детерминированной?

Обычно говорят, что многопоточные программы недетерминированы, а это означает, что в случае сбоя будет почти невозможно воссоздать ошибку, вызвавшую условие. Никто никогда не знает, какой поток будет запущен следующим, и когда он снова будет прерван.

Конечно, это связано с алгоритмом планирования потока ОС и тем фактом, что никто не знает, какой поток будет запущен следующим, и как долго он будет эффективно работать. Порядок выполнения программы также играет роль, и т.д ...

Но что, если бы у вас был алгоритм, используемый для планирования потоков, и что, если бы вы могли знать, когда какой поток выполняется, многопоточная программа могла бы стать «детерминированной», как, например, вы сможете воспроизвести сбой?

Ответы на вопрос(7)

Ваш ответ на вопрос