this is my test code
void test_code() {
omp_set_num_threads(4);
#pragma omp parallel
{
int tid = omp_get_thread_num();
#pragma omp for
for (int i = 0; i < 4; i++)
printf("Hello World %d %d\n", tid, i);
}
}
...
void CResizer::ThreadMain()
{
test_code();
MLINFO(ObjectName(), "%s started\n", __FUNCTION__);
CBufferMonitor bufResize("Resizer (frames):", ObjectId());
...
and result should be this
Hello World 1 1 Hello World 3 3 Hello World 2 2 Hello World 0 0
but this is my result is
Hello World 0 0 Hello World 0 1 Hello World 0 0 Hello World 0 1 Hello World 0 2 Hello World 0 3 Hello World 0 0 Hello World 0 1 Hello World 0 2 Hello World 0 3 Hello World 0 0 Hello World 0 0 Hello World 0 1 Hello World 0 2 Hello World 0 3 Hello World 0 0 Hello World 0 1 Hello World 0 2 Hello World 0 3 Hello World 0 0 Hello World 0 1 Hello World 0 2 Hello World 0 1 Hello World 0 2 Hello World 0 3 Hello World 0 0 Hello World 0 1 Hello World 0 2 Hello World 0 3 Hello World 0 3 Hello World 0 2 Hello World 0 3
Do you have any idea why it work like this? My system has 8 core cpu, centos 7.5.