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

企业为什么要建站台呢关键词推广技巧

企业为什么要建站台呢,关键词推广技巧,石家庄小程序开发多少钱,外贸公司如何做网站临界区 每个线程都有自己的栈,而局部变量是存在在栈中的,这就意味着每个线程都有一份自己的”局部变量“,如果线程仅仅只是使用自己的”局部变量“那么就不会有线程安全问题,那如果多个线程使用一个全局变量呢? 我们用…

临界区


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

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

#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.cadmedia.cn/news/2859.html

相关文章:

  • 学做网站从零开始seo搜索优化工程师招聘
  • 外贸前景比较好的行业重庆seo建站
  • 微商城网站建设平台合同范本哪家公司做推广优化好
  • 公司网站建设申请单十大免费网站推广平台有哪些
  • 做网站开发需要培训吗百度电话怎么转人工客服
  • 谷歌网站推广公司网站免费搭建
  • 兰州做高端网站seo推广公司招商
  • 无锡品牌网站建设百度百度推广
  • 网站建设免费网络舆情监测
  • 个人设计师的网站竞价推广渠道
  • 常德人大网站模板网站如何建站
  • 怎样花钱做网站赚钱seo网站关键词优化工具
  • 网站建设需要租用什么科目西安seo网络推广
  • 建设网站编程语言如何搜索网页关键词
  • 天津网站制作的公司网络广告投放
  • 重庆网站建设及优化公司注册网站在哪里注册
  • 抓好党建网站建设关键词排名点击软件推荐
  • 网站需要去工信部做备案google推广服务商
  • 珠海做网站百度官方推广平台
  • 游戏代理是什么seo公司服务
  • php p2p网站建设百度推广在哪里能看到
  • 景县有专业做网站人员吗北京百度竞价托管公司
  • H5平台网站建设推广引流图片
  • 网站优化推广培训百度站长平台工具
  • 动态网页用什么语言编写萧山区seo关键词排名
  • 建筑三维建模青岛seo百科
  • 夏津建设局网站谷歌搜索引擎免费入口2022
  • 做网站的公司首选智投未来如何让别人在百度上搜到自己公司
  • 东莞网站制作十年乐云seo网络营销组合策略
  • 西城上海网站建设今晚比分足球预测