Это полностью зависит от того, что вы делаете. Если вы можете вписать то, что вы делаете в OpenMP, то это путь. В противном случае вы можете посмотреть на TBB Intel . TBB предлагает несколько рабочих процессов, в которые вы можете вписаться, но библиотека имеет двойную лицензию, и вы не сможете принять ни одну из этих лицензий. Если оба OpenMP и TBB отсутствуют, вам следует рассмотреть возможности пулов потоков в вашей операционной системе.
В какой-то момент вам может понадобиться прикусить пулю и использовать Boost.Thread. Если это так, вы захотите взглянуть на , что делает многопоточность в C ++ сложной (хорошо читать, даже если вы не используете C ++ 0x: «Это не сами потоки, а связь проблемы. Изменяемое общее состояние вводит неявное общение, "стр. 3).