Есть ли какой-нибудь возможный способ отключить многоядерную функциональность в Windows и просто использовать одно ядро с помощью C \ C ++? Любая библиотека, которая позволяет это?
Мое приложение обращается к одному из наших чиповых модулей, используемых для связи с хостом. Мы подозреваем, что кто-то еще обращается к этому модулю и изменяет его. Странно то, что это происходит только в многоядерной системе (Windows 7 64bit), и когда вы устанавливаете в Windows только одно ядро ( Как отключить ядро ), все прекрасно работает.
Мне кажется, что Windows не должна позволять какой-либо программе выполнять ее программно, но я надеюсь, что ошибаюсь.
РЕДАКТИРОВАТЬ: Я не ищу предложений по улучшению моих навыков потоков. Возможно, моя проблема связана с аппаратным обеспечением или прошивкой (возможно, второе ядро также обращается к моему чип-модулю).
2-е РЕДАКТИРОВАНИЕ: НЕ программная проблема! Я только хочу знать, возможно ли отключить многоядерный с помощью C \ C ++. Я не обращаюсь к советам по многопоточности, так как на 100% уверен, что проблема не в этом.
3-е РЕДАКТИРОВАНИЕ: проблема была решена. Проблема была в другом процессе, который выполнял мой клиент, который обращался к той же общей памяти, к которой обращалось мое приложение.
Как я уже упоминал ранее, с моей веткой проблем не было, и я так и не получил ответ, который искал: простое «да» или «нет» в отношении погоды можно отключить одно из ядер с помощью C ++.
Сродство к процессору не помогло в моем особом случае.