Операционная система распределяет потоки по ядрам.
Процесс состоит из одного или нескольких потоков.
Процесс, имеющий только один поток, может работать только на одном ядре. Процесс с двумя потоками может выполняться на одном или двух ядрах. Процесс с 500 потоками может работать на любом количестве ядер (скажем, 125 потоков на ядро для четырехъядерного ядра).
Так что все дело в процессе.
Это будет работать только на одном ядре:
for(i=0; i<1000; i++) { do_something_intensive(); }
Принимая во внимание, что это более дружественное ядро
pthread_create(pth1,&do_something_intensive,attr,&args); pthread_create(pth1,&do_something_else_intensive,attr,&args);
Например.