Если Affinity в Windows установлена ​​только для 1 потока, устраняет ли это проблемы с программным обеспечением, небезопасным для потоков?

294
j riv

Скажем, у меня есть сторонний исполняемый файл, который я не могу ни редактировать, ни исправлять, ни отлаживать должным образом. Я подозреваю, что у него есть проблемы с многопоточностью таким образом, что он сегментирует приложение из-за небезопасных его частей. Будет ли установка Affinity исполняемого файла в Windows на один поток только устранить такие проблемы, или только уменьшить их или ничего не делать по другим причинам?

0
просто к сведению, что вы имеете в виду, «устанавливая привязку процесса к одному процессору». Процесс создает один или несколько потоков, независимо от настройки соответствия. Потоки работают или нет на процессорах. Jamie Hanrahan 6 лет назад 0

1 ответ на вопрос

2
Daniel B

Это уменьшит вероятность возникновения проблемы, но поскольку два потока одного и того же процесса не будут запланированы в определенном порядке, это не может обеспечить «доказанную» безопасность.

Хотя планировщик, конечно, детерминирован, рассматриваемый процесс не будет единственным запущенным процессом. Таким образом, вы не можете сказать наверняка, что произойдет. Простое движение мыши может привести к увеличению запланированной работы.

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