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

手机网站制作方法最好的网站推广软件

手机网站制作方法,最好的网站推广软件,广州网站的设计公司,做网站java好还是php临界区 每个线程都有自己的栈,而局部变量是存在在栈中的,这就意味着每个线程都有一份自己的”局部变量“,如果线程仅仅只是使用自己的”局部变量“那么就不会有线程安全问题,那如果多个线程使用一个全局变量呢? 我们用…

临界区


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

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

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

相关文章:

  • 百度浏览器网址是多少优化大师app
  • 网站建设规划书样板最近三天的国际新闻大事
  • 做网站申请完域名后做什么海口网站排名提升
  • 点开文字进入网站是怎么做的网络营销做得好的产品
  • diy学做衣服网站推广链接怎么制作
  • 策划一个网站策划书百度关键词排名点击
  • 做loge的网站百度关键词排名爬虫
  • 网站ip做网站网络营销公司怎么注册
  • 长沙做手机网站建设什么是软文营销?
  • 有没有做校园文化的网站深圳网站提升排名
  • WordPress更换域名之后网站整体优化
  • 创建免费网站注意事项云南百度推广开户
  • 安康网站建设制作日本网络ip地址域名
  • 上海手机网站建设软文代写是什么
  • 沈阳市住房和城乡建设局网站网络营销评价的名词解释
  • html网站建设中浙江百度推广
  • 单页面营销网站域名申请
  • 如何做网站 写代码百度有哪些产品
  • 销售平台是什么意思seo网站推广平台
  • 沈阳口碑最好的装修公司广州seo网络培训课程
  • 青海省住房和城乡建设局网站首页免费网站自助建站系统
  • 网站设计方案应该怎么做项目网站
  • 网站制作及维护合同济南优化网站关键词
  • 做网站推广的好处成免费crm软件有哪些优点
  • 网站开发论文的研究目的与意义百度模拟点击
  • 网站开发专业建设百度指数在线查询小程序
  • 音乐网站建设方案sem推广是什么意思呢
  • 兰州做网站公司es5188优化关键词步骤
  • 1营销型网站建设推广app拿返佣的平台
  • 芜湖市建设路小学网站安卓优化大师app