Я знаю:
- Intel Thread Building Block library (с открытым исходным кодом)
- C++ 0x поддержка библиотеки потоков (кросс-платформенный когда-нибудь в будущем)
- Just Software реализация библиотеки потоков C++ 0x - позволяет вам начать работу с новой библиотекой потоков C++ по сравнению с 2008 годом.
- OpenMP - встроенный в большинство компиляторов C++ в эти дни, включая VS 2008.
- pthreads for win32 - POSIX-потоки, поэтому они являются кросс-платформой для любой ОС POSIX.
- WIN32 резьб API
Я бы рекомендовал Intel Thread Building Blocks, как это более высокий уровень абстракции над большей частью другой многопоточное API. Это также с открытым исходным кодом, поэтому вы можете скачать и посмотреть, как это делается. Предполагаемые версии предназначены для использования Windows Concurrency Runtime, если она доступна. Я также прочитал, что Intel представила TBB для включения в стандарт C++.
pthreads и API Win32 являются примитивами нижнего уровня, которые требуют, чтобы вы поняли многопоточную среду намного лучше. Если вы знаете, что делаете, эти инструменты дают вам максимальный контроль.
Мне еще нужно использовать новую поддержку потоковой поддержки C++, но они выглядят на одном уровне или немного выше, чем pthreads. Just Software имеет несколько интересных articles о том, как использовать новую библиотеку потоков C++.
Я только что прочитал об OpenMP, и я не уверен, что это такое.
Возможно, вам понравится Joe Duffy'sConcurrent Programming on Windows книга.
Herb Sutter также размещает много статей под заголовком Эффективный параллелизм.
Надеюсь, что это поможет.
Вы можете узнать больше о библиотеке блоков Thread Building http://www.threadingbuildingblocks.org/. Обратите внимание, что это C++-библиотека, поэтому, если вы хотите использовать ее из кода C, вам, вероятно, придется перейти с pthreads или OpenMP – garethm