美文网首页
浅谈C++资源管理

浅谈C++资源管理

作者: 陈道乐 | 来源:发表于2018-11-04 01:20 被阅读0次

一, 线程之间的资源管理(LOCK)

critical section是每个线程中访问临界资源的那段代码,不论是硬件临界资源,还是软件临界资源,多个线程必须互斥地对它进行访问。

使用

void Shared::Act () throw (char *)

{

 Lock lock (_critSect);

 // perform action —— may throw

 // automatic destructor of lock

}

控制临界区域对象的封装

为被管理对象增加管理方法

class CritSect

{

  //友元类
 friend class Lock;

 public:

  CritSect () { InitializeCriticalSection (&_critSection); }

  ~CritSect () { DeleteCriticalSection (&_critSection); }

 private:

  void Acquire ()

  {

   EnterCriticalSection (&_critSection);

  }

  void Release ()

  {

   LeaveCriticalSection (&_critSection);

  }
  
 private:

    //临界区域
  CRITICAL_SECTION _critSection;

};

定义锁

在自身声明周期中,对被管理资源进行锁定

class Lock

{

 public:

  Lock (CritSect& critSect) : _critSect (critSect)

  {

   _critSect.Acquire ();

  }

  ~Lock ()

  {

   _critSect.Release ();

  }

 private

  CritSect & _critSect;

};

相关文章

  • 浅谈C++资源管理

    一, 线程之间的资源管理(LOCK) critical section是每个线程中访问临界资源的那段代码,不论是硬...

  • c++ 资源管理

    对象生存期和资源管理(现代C++RAII惯用法:C++资源管理的利器

  • 一些函数

    cmp函数 C++ sort cmp函数 - lzz的博客 - CSDN博客 浅谈C/C++排序函数中cmp()比...

  • C++ 基础

    RAII惯用法:C++资源管理的利器 一文说尽C++赋值运算符重载函数(operator=) C 和 C++ 区别...

  • 浅谈中小民企绩效考核存在问题与对策

    浅谈中小民企绩效考核存在问题与对策 一、引言 绩效管理作为人力资源管理六大模块之一,突出体现了企业人力资源管理的核...

  • 浅谈C++。

    C++是从C语言发展出来的,在C语言的基础上增加了一些新的内容:定义了类这个概念;提供了String类,Strea...

  • 条款 14:在资源管理类中小心 copying 行为

    《Effective C++ 中文版 第三版》读书笔记 ** 条款 14:在资源管理类中小心 copying 行为...

  • 浅谈C++常用输入输出

    浅谈C++常用输入输出 在编写C++程序的时候,经常因为输入输出头疼,所以在这里做一个小结,记录一下常用的输入输出...

  • 原子操作内存序

    [TOC] 参考 1. C++11多线程-内存模型2. c++并发编程1.内存序3. 浅谈Memory Reord...

  • Python与C/C++相互调用 gcc生成静态库、动态库

    如何使用GCC生成动态库和静态库 - 请叫我小小兽 - 博客园 Python实例浅谈之三Python与C/C++相...

网友评论

      本文标题:浅谈C++资源管理

      本文链接:https://www.haomeiwen.com/subject/aialxqtx.html