Windows多线程控制台程序C语言代码
时间: 2025-02-15 07:17:33 浏览: 21
Windows下的多线程C语言控制台程序通常通过使用CreateThread()
函数或者_beginthread()
宏来创建新线程,同时利用Sleep()
、WaitForSingleObject()
等函数来同步线程执行。以下是一个简单的例子:
```c #include <windows.h> #include <stdio.h>
// 线程函数示例 DWORD WINAPI thread_func(LPVOID lpParam) { printf("这是线程 %d,正在运行...\n", (int)lpParam); // 线程任务... Sleep(2000); // 模拟工作时间 return 0; }
int main() { int num_threads = 2; // 创建的线程数
for (int i = 0; i < num_threads; ++i) {
HANDLE hThread = CreateThread(NULL, 0, thread_func, (LPVOID)i, 0, NULL); // 使用当前进程的线程上下文
if (hThread == NULL) {
printf("Error creating thread %d\n", i);
exit(1);
}
printf("已创建线程 %d, ID: %lu\n", i, (unsigned long)hThread);
}
// 主线程继续执行其他操作...
// 等待所有线程结束
DWORD threads_wait_status[num_threads];
for (int i = 0; i < num_threads; ++i) {
WaitForSingleObject(hThread, INFINITE); // 如果需要超时等待,可以替换INFINITE
CloseHandle(hThread);
threads_wait_status[i] = GetLastError(); // 获取线程结束状态
}
printf("所有线程都已关闭。\n");
return 0;
}
相关推荐


















