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

wordpress跳转插件seo关键词分类

wordpress跳转插件,seo关键词分类,java如何网站开发,公司小程序怎么制作临界区 每个线程都有自己的栈,而局部变量是存在在栈中的,这就意味着每个线程都有一份自己的”局部变量“,如果线程仅仅只是使用自己的”局部变量“那么就不会有线程安全问题,那如果多个线程使用一个全局变量呢? 我们用…

临界区


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

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

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

相关文章:

  • 河南省住房城乡建设厅网站首页郑州做网站
  • vi设计作品赏析百中搜优化软件
  • 建设网站找什么seo管理工具
  • 微网站 app 区别杭州网站制作排名
  • 禹城网站建设费用分类信息网
  • 建设游戏网站免费的seo网站
  • 音乐主题的网站设计网络上如何推广网站
  • 免费的ppt模板网站有哪些湖北网络推广有限公司
  • 网站代码大全铜川网络推广
  • 学做标书网站百度搜索网页版入口
  • 站长工具seo综合查询源码广告点击一次多少钱
  • 用jsp做网站一般会用到什么武汉做搜索引擎推广的公司
  • 前端开发工程师就业前景湖南seo优化报价
  • 各个视频网站怎么做原创作者公司网站推广运营
  • 网站建设的好处如何推广小程序平台
  • 此网站建设于美利坚网站快速收录工具
  • 建设网站的公司兴田德润怎么联系微软优化大师
  • 建筑网官方网站seo网站诊断价格
  • php做的一个网站友情链接还有用吗
  • 株洲市住房和城乡建设局网站衡阳seo优化首选
  • 政府 内部 网站抖音seo优化排名
  • 模板之家免费官网下载seo搜索引擎优化平台
  • 海口自助建站软件郑州网络推广排名
  • wordpress设置回复可见裤子seo标题优化关键词
  • 国内企业手机网站建设台州关键词首页优化
  • 网站建设涉及的标准长沙关键词优化平台
  • 专业的网站建设公司排名网络防御中心
  • 怎么免费增加网站流量吗百度pc端提升排名
  • 做网站投广告赚钱么青岛网站建设运营推广
  • 株洲新闻网红网株洲站企业网站的优化建议