Я пишу шахматный двигатель в C ++, который общается через протокол UCI, и мне нужен эффективный способ проверить, превышено ли выделенное время поиска без слишком большого количества накладных расходов. Поиск работает на выделенном потоке, и моя первоначальная идея заключалась в создании отдельного потока синхронизации, который периодически проверяет часы и устанавливает атомный SearchStopRepested флаг, но я обеспокоен этим, это может быть не самый эффективный подход, поскольку у меня уже есть два потока (один для связи UCI и один для поиска). Какова наилучшая практика для обработки проверок времени в шахматном двигателе UCI, чтобы минимизировать воздействие на производительность?
Подробнее здесь: https://stackoverflow.com/questions/797 ... ess-engine