Это может произойти по ряду причин.Я перечислю возможные из них, которые я знаю:
1: Убедитесь, что у вас действительно многоядерный компьютер.Если это одноядерный компьютер (без HT), он будет работать только с одним потоком.
2: если это в Visual Studio, вам нужно включить поддержку OpenMP.Недостаточно просто включить заголовок:
Project -> Properties -> Configuration Properties -> C/C++ -> Language -> Open MP Support
измените его на Yes (/openmp)
, и он должен быть включен.
Я правильно выполнил ваш код с настройкой OpenMP и получил следующее:
Loop A 0 2
Loop B 2 3
Loop B 2 3
Loop B 2 3
Loop B 2 3
Loop A 0 2
Loop A 0 2
Loop A 0 2
Так что я думаю, что ваш код правильный.