c#生成随机数,c++定时任务,c++线程同步
C#生成随机数、C++定时任务和线程同步实现方法
本文将介绍如何使用C#生成随机数、C++实现定时任务和线程同步的方法。
一、C#生成随机数
1.1 用法
C#可以使用Random类生成随机数,代码如下:
“`
Random random=new Random();
int randomNumber=random.Next();
“`
其中,randomNumber为生成的随机数。
1.2 设定范围
若想要随机数的范围在0-100之间,代码如下:
“`
Random random=new Random();
int randomNumber=random.Next(0, 101);
“`
其中,randomNumber为生成的随机数,在0-100之间。
二、C++定时任务
2.1 使用定时器
C++可以使用Windows API中的定时器来实现定时任务。
代码如下:
“`
#include
int main()
{
SetTimer(NULL, 0, 1000, NULL);
return 0;
}
“`
其中1000为定时器的时间间隔,单
位为毫秒。
2.2 自定义线程
也可以自己创建一条线程来实现定时任务,代码如下:
“`
#include
DWORD WINAPI ThreadFunc(LPVOID lpParamter)
{
while (true)
{
Sleep(1000);//暂停1秒
//执行定时任务操作
}
return 0;
}
int main()
{
HANDLE hThread=CreateThread(NULL, 0, ThreadFunc, NULL, 0, NULL);
return 0;
}
“`
其中,ThreadFunc()函数为自己创建的线程函数,可以在里面执行定时任务操作。
三、C++线程同步
3.1 互斥量
互斥量又称为互斥锁,是一种用于保证多任务同步互斥的机制。
代码如下:
“`
#include
HANDLE hMutex;
DWORD WINAPI ThreadFunc1(LPVOID lpParameter)
{
WaitForSingleObject(hMutex, INFINITE);//锁住
//执行任务操作
ReleaseMutex(hMutex);//解锁
return 0;
}
DWORD WINAPI ThreadFunc2(LPVOID lpParameter)
{
WaitForSingleObject(hMutex, INFINITE);//锁住
//执行任务操作
ReleaseMutex(hMutex);//解锁
return 0;
}
int main()
{
hMutex=CreateMutex(NULL, false, NULL);//创建互斥量
HANDLE hThread1=CreateThread(NULL, 0, ThreadFunc1, NULL, 0, NULL);
HANDLE hThread2=CreateThread(NULL, 0, ThreadFunc2, NULL, 0, NULL);
WaitForSingleObject(hThread1, INFINITE);
WaitForSingleObject(hThread2, INFINITE);
CloseHandle(hMutex);//释放资源
CloseHandle(hThread1);
CloseHandle(hThread2);
return 0;
}
“`
其中,CreateMutex()函数为创建互斥量的函数,WaitForSingleObject()函数为等待互斥量的函数,ReleaseMutex()函数为释放互斥量的函数。
四、结论
本文介绍了如何使用C#生成随机数、C++实现定时任务和线程同步的方法。
使用Random类可以轻松实现生成随机数,可以指定范围。
利用Windows API的定时器可以创建定时任务,也可以自己创建一条线程来实现。
在多任务编程中,互斥量是一种非常重要的同步机制,可以在多个任务中同步访问共享资源。
如若转载,请注明出处:https://www.jukee8.cn/23368.html