当前位置: 首页 > wzjs >正文

厦门在哪个网站做用工报备鲜花网站素材

厦门在哪个网站做用工报备,鲜花网站素材,五八同城找工作招聘信息,怎么在一起做网站上拿货临界区 每个线程都有自己的栈,而局部变量是存在在栈中的,这就意味着每个线程都有一份自己的”局部变量“,如果线程仅仅只是使用自己的”局部变量“那么就不会有线程安全问题,那如果多个线程使用一个全局变量呢? 我们用…

临界区


每个线程都有自己的栈,而局部变量是存在在栈中的,这就意味着每个线程都有一份自己的”局部变量“,如果线程仅仅只是使用自己的”局部变量“那么就不会有线程安全问题,那如果多个线程使用一个全局变量呢?

我们用一个多线程卖票问题来看下全局变量下的线程安全问题

#include<iostream>
#include<windows.h>using namespace std;int g_num = 1000;DWORD WINAPI ThreadProcOne(LPVOID lpParameter) {while (g_num > 0) {cout << "线程1正在卖票,还剩下" << g_num << "张票\n";g_num--;cout << "线程1买出一张,还剩下" << g_num << "张票\n";}return 0;
}DWORD WINAPI ThreadProcTwo(LPVOID lpParameter) {while (g_num > 0) {cout << "线程2正在卖票,还剩下" << g_num << "张票\n";g_num--;cout << "线程2买出一张,还剩下" << g_num << "张票\n";}return 0;
}int main()
{HANDLE hTread[2];hTread[0] = CreateThread(NULL, 0, ThreadProcOne, NULL, 0, NULL);hTread[1] = CreateThread(NULL, 0, ThreadProcTwo, NULL, 0, NULL);// 等待所有线程结束WaitForMultipleObjects(2, hTread, TRUE, INFINITE);return 0;}

在这里插入图片描述
会出现线程安全问题,同一张票被两个人同时买到了,或者是多卖了一张票

解决思路

使用临界资源 (多个线程其中一个线程在访问全局变量时,其他线程不得访问)

  1. 创建全局变量
    • CRITICAL_SECTION cs;
  2. 初始化全局变量
    • InitializeCriticalSection(&cs);
  3. 实现临界区
    • EnterCriticalSection(&cs);
    • LeaveCriticalSection(&cs); // 使用临界资源

使用临界资源修改后的代码

#include<iostream>
#include<windows.h>using namespace std;int g_num = 1000;
// 创建临界区
CRITICAL_SECTION cs;DWORD WINAPI ThreadProcOne(LPVOID lpParameter) {EnterCriticalSection(&cs);while (g_num > 0) {cout << "线程1正在卖票,还剩下" << g_num << "张票\n";g_num--;cout << "线程1买出一张,还剩下" << g_num << "张票\n";}LeaveCriticalSection(&cs);return 0;
}DWORD WINAPI ThreadProcTwo(LPVOID lpParameter) {EnterCriticalSection(&cs);while (g_num > 0) {cout << "线程2正在卖票,还剩下" << g_num << "张票\n";g_num--;cout << "线程2买出一张,还剩下" << g_num << "张票\n";}LeaveCriticalSection(&cs);return 0;
}int main()
{HANDLE hTread[2];// 初始化临界区InitializeCriticalSection(&cs);hTread[0] = CreateThread(NULL, 0, ThreadProcOne, NULL, 0, NULL);hTread[1] = CreateThread(NULL, 0, ThreadProcTwo, NULL, 0, NULL);// 等待所有线程结束WaitForMultipleObjects(2, hTread, TRUE, INFINITE);return 0;}

现在的代码就不会出现线程安全的问题了

http://www.dtcms.com/wzjs/809862.html

相关文章:

  • 贵州做网站的网站运营策划提案
  • 中信云 做网站官方网站建设 招标公告
  • 没有公司做网站网站建设html5作品
  • 电影网站建设学院网站建设需求说明书
  • wordpress采集建站阿里巴巴外贸平台是什么
  • 网站站内搜索代码wordpress作者页面显示评论
  • 先备案还是先做网站中国建设银行官网站纪念币预约
  • 网站建设要提供营业执照传奇手游平台
  • 都江堰市建设局网站网页开发与制作的软件
  • c 网站开发需要什么软件金品诚企网站建设
  • 电子商务网站建设评估的指标有哪些?二次开发培训
  • 女生做网站开发做网站服务器权限设置
  • 网站运营建设的目标芒果视频怎样下载到本地
  • 泰安市两学一做网站专业企业网站建设报价
  • 温州哪里有做网站的公司4000-262-建造师在建项目查询网
  • 188网站开发贵州 做企业网站的流程
  • 网站认证收费如何做融资网站
  • 长沙网站建设模板网站建设 中企高程
  • 网站建设 app广州做外贸网站建设
  • html网页设计环保网站行业电子商务网站建设
  • 网站建设2000元想在网上做设计接单有没有网站
  • 甘肃网站优化怎么进行seo
  • php网站开发门槛高吗图片库网站建设报价
  • 一起做网站下载数据包网站建设售后服务安全维护
  • 网站开发转软件开发帝国cms二手网站模板
  • 静态网站设计心得商丘至开网络科技有限公司
  • 模板网站怎么做才美观尚海整装
  • 上海网站建设公司选哪家好佛山网红公寓
  • wpf做网站做网站 图片格式
  • 网页设计接单网站深圳市城乡住房和建设局网站首页