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

企业信用报告如何获取整站seo优化公司

企业信用报告如何获取,整站seo优化公司,wordpress 更新过慢,开发网站用什么语言最好吗临界区 每个线程都有自己的栈,而局部变量是存在在栈中的,这就意味着每个线程都有一份自己的”局部变量“,如果线程仅仅只是使用自己的”局部变量“那么就不会有线程安全问题,那如果多个线程使用一个全局变量呢? 我们用…

临界区


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

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

#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/517228.html

相关文章:

  • 可以做设计兼职的网站有哪些工作室编程培训机构排名前十
  • 口碑营销什么意思有利于seo优化的是
  • 成都网络公关公司seo代码优化包括哪些
  • 眉县住房和建设委员会网站网站营销网
  • 小说网站做封面要钱吗深圳做网站公司哪家好
  • 德化规划与建设局网站百度引擎搜索入口
  • wordpress编辑器文件济南网络优化网站
  • 旅游网站建设与翻译代发新闻稿最大平台
  • 那些公司需要网站开发工程师百度指数介绍
  • 江桥网站建设800元做小程序网站
  • 页面设计素材网站搜索引擎优化不包括
  • 淘客网站如何做推广seo网站优化方案摘要
  • wordpress淘宝客2016长沙网站seo技术厂家
  • 六师五家渠市建设局网站软件制作平台
  • 海尔集团电商网站建设cfa一级看多久两分钟
  • 网站框架是什么北京网站营销与推广
  • 做配资网站大二网络营销实训报告
  • 制作3d动画的软件廊坊快速排名优化
  • 网站是公司域名是个人可以吗seo渠道是什么意思
  • 厦门企业公司电话黄页seo云优化如何
  • wordpress图片分页怎么优化网站
  • 成都的网站建设公司免费seo排名优化
  • 处网站的建设竞价外包代运营公司
  • 百事通做网站网络广告营销对应案例
  • 挂机宝做php网站吗全网品牌推广公司
  • 手机上的网站是怎么做的吗网上如何做广告
  • 长沙市住房和建设局官方网站阿里指数官网
  • 做外贸网站用什么软件翻强的哪些平台可以发布推广信息
  • 怎么查看网站ftp地址网络营销方式有几种
  • 广西住房及城乡建设厅网站论坛推广