Window实现多线程 C语言
时间: 2023-07-07 10:12:43 浏览: 112
在 Windows 平台下,实现多线程可以使用 Windows API 提供的线程函数。以下是一个简单的多线程程序示例:
```c
#include <windows.h>
#include <stdio.h>
DWORD WINAPI thread_func(LPVOID lpParam) {
int* pCount = (int*)lpParam;
for (int i = 0; i < *pCount; i++) {
printf("Thread %d: %d\n", GetCurrentThreadId(), i);
}
return 0;
}
int main() {
HANDLE hThread;
DWORD threadId;
int count = 10;
hThread = CreateThread(NULL, 0, thread_func, &count, 0, &threadId);
if (hThread == NULL) {
printf("Failed to create thread\n");
return 1;
}
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
return 0;
}
```
这段代码创建了一个线程函数 `thread_func`,并在主函数中创建了一个线程,并等待线程执行完毕。在线程函数中可以进行一些耗时操作,而主线程可以继续执行其他任务。需要注意的是,在使用 Windows API 的线程函数时,需要使用 `HANDLE` 类型的句柄来标识线程。同时,线程函数的返回值需要是 `DWORD` 类型。
阅读全文