如何结合C++ gettickcount与多线程

avatar
作者
筋斗云
阅读量:0

在C++中,可以使用GetTickCount()函数获取当前系统运行时间的毫秒数,然后结合多线程来实现一些并发操作。下面是一个简单的示例代码:

#include <iostream> #include <windows.h> #include <thread>  DWORD WINAPI MyThreadFunction(LPVOID lpParam) {     while (true) {         DWORD tickCount = GetTickCount();         std::cout << "Thread ID: " << GetCurrentThreadId() << ", Tick Count: " << tickCount << std::endl;         Sleep(1000); // 每隔1秒输出一次     }     return 0; }  int main() {     HANDLE hThread = CreateThread(NULL, 0, MyThreadFunction, NULL, 0, NULL);     if (hThread == NULL) {         std::cerr << "Failed to create thread" << std::endl;         return 1;     }          while (true) {         DWORD tickCount = GetTickCount();         std::cout << "Main Thread, Tick Count: " << tickCount << std::endl;         Sleep(1000); // 每隔1秒输出一次     }      CloseHandle(hThread);     return 0; } 

在上面的代码中,我们创建了一个新的线程MyThreadFunction,在该线程中不断获取系统运行时间的毫秒数,并输出。同时,主线程也在不断获取系统时间并输出。这样就实现了使用GetTickCount()结合多线程进行并发操作的功能。

需要注意的是,在实际的多线程应用中,要注意线程之间的同步和互斥,以避免出现竞争条件和数据访问冲突的情况。可以使用互斥量、信号量等机制来实现线程间的同步和互斥。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!