Вот MSDN образец об использовании функции CreateThread() на Windows.
Основная идея заключается в том, что Вы вызываете CreateThread() и передаете ей указатель на Вашу функцию потока, которая будет запущена на целевом потоке после его создания.
Самый простой код для этого:
#include <windows.h>
DWORD WINAPI ThreadFunc(void* data) {
// Do stuff. This will be the first function called on the new thread.
// When this function returns, the thread goes away. See MSDN for more details.
return 0;
}
int main() {
HANDLE thread = CreateThread(NULL, 0, ThreadFunc, NULL, 0, NULL);
if (thread) {
// Optionally do stuff, such as wait on the thread.
}
}
У Вас также есть возможность вызова SHCreateThread()- той же основной идеи, но по Вашему запросу Вы сделаете некоторую инициализацию типа оболочки, например, инициализацию COM и т.д.
.Атомные операции и мьютексы - это хорошо. Я использую CreateThread и т.д., а не pthreads.
.Вы бы использовали функцию CreateThread.
Вы также упомянули семафоры. Для этого Вы используете CreateSemaphore.
.