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

网站模板 静态模版番禺有经验的网站建设

网站模板 静态模版,番禺有经验的网站建设,廊坊做网站公司哪家好,阿里云做网站开发吗多个线程访问临界区时,可以使用临界区对象。临界区对象是一个独占性共享资源,任一时刻只有一个线程可以拥有临界区。拥有临界区的线程可以访问被保护起来的资源或代码段,其他希望进入临界区的线程将被挂起等待,直到拥有临界区的线…

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

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.yayakq.cn/news/204525/

相关文章:

  • 辛集专业网站建设中文网址怎么注册
  • 电子商务网站开发形式选择拼多多网站首页
  • 做文库网站怎么赚钱吗网站备案 域名备案
  • 保定网站建设设计公司简单网页制作代码html
  • 网站开发如何使用API课程网站建设ppt模板下载
  • 信息网站 模板小企业网站建设5000块贵吗
  • 专业专业的网站开发百度网站收录提交入口全攻略
  • 建设部造价咨询企业网站临沂网站公司哪家好
  • 免费发布信息网站网站申请要多少钱
  • 宁波自适应网站建设特点品牌网站设计地址
  • 北京保障房建设项目网站佛山市做网站
  • 万网建网站流程网站的推广有哪些方式
  • 全网最低价业务网站移动分销系统代理
  • 极速网站制作江苏推广网站建设业务
  • wordpress源码整站单位建设网站申请信用卡
  • 都昌网站建设seo综合查询平台
  • php网站模板免费下载如何细分行业 做网站赚钱
  • 网站建设目的及功能定位开发公司各部门岗位职责
  • 三亚旅游网网站seo优缺点
  • 响应式装饰设计公司网站源码做搜狗网站优化首页
  • 创建吃的网站怎么做福建省住房和城乡建设厅网站
  • 骄阳房地产网站免费的产品推广平台
  • 国外教做蛋糕的网站云南做网站多少钱
  • 网站的内容策略wordpress屏蔽蜘蛛爬虫
  • 网站模板及素材app设计公司
  • 深圳网站制作公司讯息搜狗提交入口网址
  • 想给学校社团做网站廊坊建设局网站6
  • 去类似美团网站做软件开发怎么看一个网站的cms
  • 高端网站建设公司推荐四川建设厅官网查询
  • 网站建设解决恩问题张雪峰最不建议上的专业