VC++ 简易线程同步代码展示

VC++ 简易线程同步代码展示

简单介绍

线程同步,并非如字面意思是说多个线程一期同时运行,而是它们可以按照预定的先后次序执行。因为实验室里的电脑是单核CPU,所以系统实际操作就是采用时间片轮询的方式来执行每个进程;若是多核CPU 的电脑,那线程之间就有可能并发运行,这时候就要尽量少使用或避免使用全局变量以防止多进程同时访问该全局变量。

代码展示

// 创建三个线程句柄
HANDLE hThread1;
HANDLE hThread2;
HANDLE hThread3;

//创建事件对象
g_hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);  //第二个参数代表是否是人工重置
// 我推荐设置为TRUE,这样当该事件对象得到通知的时候,该对象的所有线程都可以调用了

//让事件对象变为有信号状态
SetEvent(g_hEvent);

//创建线程1
hThread1 = CreateThread(NULL, 0, Thread1Proc, NULL, 0, NULL);
//创建线程2
hThread2 = CreateThread(NULL, 0, Thread2Proc, NULL, 0, NULL);
//创建线程3
hThread3 = CreateThread(NULL, 0, Thread3Proc, NULL, 0, NULL);

//主线程休眠600秒
Sleep(600000);

//关闭线程句柄
CloseHandle(hThread1);
CloseHandle(hThread2);
CloseHandle(hThread3);

//关闭事件对象句柄
CloseHandle(g_hEvent);


//线程1入口函数
DWORD WINAPI Thread1Proc(LPVOID lpParameter)
{
	apple();

	return 0;
}


//线程2入口函数
DWORD WINAP
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值