在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()
结合多线程进行并发操作的功能。
需要注意的是,在实际的多线程应用中,要注意线程之间的同步和互斥,以避免出现竞争条件和数据访问冲突的情况。可以使用互斥量、信号量等机制来实现线程间的同步和互斥。