Я знаю:
- Библиотека Intel Thread Building Block (с открытым исходным кодом)
- Поддержка библиотеки потоков C ++ 0x (кроссплатформенная в будущем)
- Just Software реализация библиотеки потоков C ++ 0x - позволяет вам начать использовать новую библиотеку потоков c ++ в версии 2008.
- OpenMP - встроить в большинство компиляторов C ++, включая VS 2008.
- pthreads для win32 - потоки POSIX, поэтому они являются кроссплатформенными для любой ОС с жалобами POSIX.
- API потоков WIN32
Я бы порекомендовал Intel Thread Building Blocks, поскольку это более высокий уровень абстракции по сравнению с большинством других многопоточных API. Это также открытый исходный код, так что вы можете скачать и посмотреть, как это делается. Предстоящие версии предназначены для использования Windows Concurrency Runtime, если она доступна. Я также читал, что Intel представила TBB для включения в стандарт C ++.
pthreads и Win32 API - это примитивы более низкого уровня, которые требуют от вас более глубокого понимания многопоточной среды. Если вы знаете, что делаете, эти инструменты дают вам максимальный контроль.
Мне еще предстоит использовать новую поддержку потоков в c ++, но они выглядят на том же уровне или чуть выше, чем pthreads. Just Software имеет несколько интересных статей о том, как использовать новую библиотеку потоков c ++.
Я только читал об OpenMP, и я не уверен, что это такое.
Вы можете прочитать Книга Джо Даффи Параллельное программирование в Windows .
Херб Саттер также публикует множество статей под заголовком «Эффективный параллелизм».
Надеюсь, это поможет.