阅读量:2
在VC++中创建多线程可以使用Windows API提供的函数来实现。以下是一个简单的示例代码:
#include <windows.h> #include <iostream> using namespace std; // 线程函数 DWORD WINAPI ThreadFunction(LPVOID lpParam) { // 获取传入参数 int threadId = *(int*)lpParam; // 输出线程ID cout << "Thread " << threadId << " is running." << endl; // 延时一段时间 Sleep(1000); // 输出线程ID并退出 cout << "Thread " << threadId << " is exiting." << endl; return 0; } int main() { // 创建线程数组 HANDLE threads[5]; // 启动五个线程 for (int i = 0; i < 5; i++) { // 传入参数 int* threadId = new int(i); // 创建线程 threads[i] = CreateThread(NULL, 0, ThreadFunction, threadId, 0, NULL); } // 等待所有线程结束 WaitForMultipleObjects(5, threads, TRUE, INFINITE); // 关闭线程句柄 for (int i = 0; i < 5; i++) { CloseHandle(threads[i]); } return 0; }
上述代码创建了5个线程,并在每个线程中输出线程ID,然后延时1秒后退出。在主函数中,使用CreateThread
函数创建线程并传入线程函数和参数。然后使用WaitForMultipleObjects
函数等待所有线程结束,并使用CloseHandle
函数关闭线程句柄。
此外,多线程在实际应用中可以用于提高程序的并发性和响应性。例如,可以使用多线程来加速计算密集型任务、实现并行处理等。要注意的是,在多线程编程中需要处理好线程间的同步和互斥,以避免出现竞争条件和死锁等问题。