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

网站建设浩森宇特专业搜索引擎seo公司

网站建设浩森宇特,专业搜索引擎seo公司,怎么做网站广告赚钱,wordpress绕过媒体多个线程访问临界区时,可以使用临界区对象。临界区对象是一个独占性共享资源,任一时刻只有一个线程可以拥有临界区。拥有临界区的线程可以访问被保护起来的资源或代码段,其他希望进入临界区的线程将被挂起等待,直到拥有临界区的线…

多个线程访问临界区时,可以使用临界区对象。临界区对象是一个独占性共享资源,任一时刻只有一个线程可以拥有临界区。拥有临界区的线程可以访问被保护起来的资源或代码段,其他希望进入临界区的线程将被挂起等待,直到拥有临界区的线程放弃临界区时为止。

CCriticalSection类的用法:

方法一:

(1)定义CCriticalSection类的一个全局对象(以使各个线程均能访问):

       CCriticalSectioncritical_section;

(2)在访问临界区之前,调用CCriticalSection类的成员函数Lock()获得临界区:

        critical_section.Lock();

在线程中调用该函数来使线程获得它所请求的临界区。如果此时没有其他线程占有临界区,则调用Lock()的线程获取临界区;否则,线程即将挂起,并放入到一个系统队列中等待,直到当前拥有临界区的线程释放了临界区时为止。

  (3)在本线程中访问临界区中的共享资源。

(4)访问临界区完毕后,使用CCriticalSection类的成员函数UnLock()来释放临界区:

      critical.section.UnLock();

 

方法二:

  与同步辅助类CSingleLock或CMutiLock类一起使用

(1)定义CCriticalSection类的一个全局对象(以使各个线程均能访问):

       CCriticalSection critical_section;

(2)在访问临界区之前,定义CSingleLock类的一个对象,并将critical_section的地址传送给构造函数:

         CSingleLocksinglelock(&critical_section);

(3)使用CSingleLock类的成员函数Lock()请求获得临界区:

        singlelock.Lock();

(4)在本线程中访问临界区中的共享资源。

(5)调用CSingleLock类的成员函数UnLock()来释放临界区:

       singlelock.UnLock();


方法一:

定义一个CCriticalSection类的一个全局变量和一个共享资源的字符数组g_Array
CCriticalSection critical_section;
TCHAR g_Array[10] = _T("\0");

定义2个线程,共享g_Array数组资源
UINT WriteA(LPVOID pParam);
UINT WriteB(LPVOID pParam);
//pParam为创建afxBeginThread()函数的第二个参数
UINT WriteA(LPVOID pParam) 
{CEdit *pEdit = (CEdit*)pParam; //pEdit为控制EDITA编辑框pEdit->SetWindowText(_T(""));critical_section.Lock(); //上锁//临界区for (int i = 0; i < 9; i++){g_Array[i] = _T('A');pEdit->SetWindowText(g_Array);Sleep(1000);}critical_section.Unlock();//解锁
	return 0;
}UINT WriteB(LPVOID pParam)
{CEdit *pEdit = (CEdit*)pParam;pEdit->SetWindowText(_T("\0"));critical_section.Lock();//临界区资源(g_Array)for (int i = 0; i < 9; i++){g_Array[i] = _T('B');pEdit->SetWindowText(g_Array);Sleep(1000);}critical_section.Unlock();return 0;
}
//按钮启动线程A
void CThreadLockDlg::OnBnClickedWritea()
{// TODO:  在此添加控件通知处理程序代码AfxBeginThread(WriteA, &m_CEditA); //参数表示EDIT控件变量
}//启动线程B
void CThreadLockDlg::OnBnClickedWriteb()
{// TODO:  在此添加控件通知处理程序代码AfxBeginThread(WriteB, &m_CEditB);
}


   


http://www.sczhlp.com/news/22792/

相关文章:

  • 阿里云做网站电话市场营销专业课程
  • 网易云网站开发在线咨询 1 网站宣传
  • 南加大与某中心公布三位机器学习新晋研究员
  • 做化工的外贸网站都有什么地方贵阳百度seo点击软件
  • 去掉wordpress北京seo公司助力网络营销
  • 网站开发培训学校bt磁力搜索引擎
  • 中山网站建设工具猫北京seo全网营销
  • 做网站产品搜索展示实现昆明seo关键字推广
  • 如何修改WordPress账号seo网站推广与优化方案
  • 网站建设需注意的新手做网络销售难吗
  • 网站中嵌入地图关键字挖掘机爱站网
  • 题目池
  • 3dmax2025安装教程(包含下载教程及激活教程)2025最新保姆级3dmax2025下载安装教程
  • 电子商务网站建设考试简答题广州百度搜索优化
  • 青岛设计网站公司宝鸡seo
  • 懂做游戏钓鱼网站的网络推广法
  • 在哪个网站做视频好赚钱百度极速版免费下载安装
  • 网站风格包括什么意思互联网营销师培训学校
  • 合肥龙岗医院网站建设培训机构不退钱最怕什么举报
  • 招聘网站建设工作总结网站排名优化公司哪家好
  • 河南春辉建设集团官方网站网站优化排名易下拉稳定
  • 网站备案完成通知书淘宝指数网站
  • 海珠网站建设公司网站长尾关键词排名软件
  • 南昌网站怎么做seo网页设计工作室长沙
  • 帝国网站模板建设完成显示不正常国内新闻最新5条
  • 我开发的客服系统-稳定为王,兼容制胜的技术选择
  • vip视频解析网站怎么做的百度电商广告代运营
  • 用中文版wordpress建英文站百度指数查询排行榜
  • 网站的建设框架河源新闻最新消息
  • 做机械配件的网站做网站用哪个软件