C++11 atomic

atomic是在多线程编程中经常使用的一个类。使用的时候需要包含<atomic>文件。 atomic atomic内部封装一个值,并保证对该值的访问的互斥性。可以用来进行线程同步。使用非常方便。说白了就是atomic内部保存的值是线程安全的,不用担心多线...

2019-02-05 17:13:43

阅读数 473

评论数 0

C++11 condition_variable

condition_variable也是在多线程编程中经常用到的一个类。使用的时候需要包含头文件<condition_variable> condition_variable condition_variable对象能...

2019-02-05 14:39:49

阅读数 39

评论数 0

c++11 mutex

mutex是多线程编程时经常用到的,在C++11中需要包含<mutex>模块。而在该文件中还有其他和mutex协作的类和函数,使得多线程编程时非常方便。 1 mutex类 mutex对象是一个lockable的对象,当关键区域需要被互斥访问的时候被用来当...

2019-02-04 23:10:48

阅读数 59

评论数 0

C++11 thread

std::thread是C++11中提供多线程编程模块。使用时需要包含<thread>头文件。 简单说一下thread的用法 1 构造函数 构造函数是构造thread对象的,thread只是一个管理线程的类,并不是所有的thread对象都绑定一个实际的可...

2019-02-04 14:08:41

阅读数 78

评论数 0

C++11实现线程池

1 线程池是什么? 在多任务并发执行的时候往往需要开启很多线程来执行。而一个线程的创建和销毁是需要消耗一部分计算机资源的,而如果一个线程执行任务的资源消耗和创建一个线程的消耗差不多的情况下,那简直太浪费资源了。所以如果有已经创建好的一堆线程等着执行任务,有任务来了,调用一个线程去执行就可以了,不...

2019-02-04 00:46:01

阅读数 91

评论数 0

markdown公式符号大全

上下标 算式 markdown a0,aprea_0, a_{pre}a0​,apre​ a_0, a_{pre} a0,a[0]a^0, a^{[0]}a0,a[0] a^0, a^{[0]} 括号 算式 mark...

2018-12-22 13:37:36

阅读数 948

评论数 0

Linux中文件权限和修改

如下是Linux中常见的文件与其属性: -rw-r--r-- 1 root root 1864 May 4 18:01 initial-setup-ks.cfg 共有7个字段,每个字段意思如下表: -rw-r–r-- 1 root root 1864 May 4 18:01 initia...

2018-11-27 23:01:42

阅读数 260

评论数 0

设计模式之类之间的关系和六大原则

设计模式之类之间的关系和六大原则1 类之间的关系1.1 继承关系1.2 实现关系1.3 依赖关系1.4 关联关系1.5 聚合关系1.6 组合关系1.7 总结2 六大原则2.1 单一职责原则2.2 开放-封闭原则2.3 依赖倒转原则2.4 里氏代换原则2.5 接口隔离原则2.6 迪米特法则3 各种设...

2018-10-27 08:46:17

阅读数 691

评论数 1

设计模式之中介者模式(C++)

设计模式之中介者模式 中介者模式,用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地互相引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。该模式很好理解,其UML图如下: Mediator中每个交互者的引用,在Mediator内部封装了各种类之间的交互。至于那个类和那...

2018-10-27 08:33:39

阅读数 148

评论数 0

设计模式之享元模式(C++)

设计模式之享元模式 享元模式,运用共享技术有效地支持大量细粒度的对象。面向对象技术可以很好地解决一些灵活性或扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式正式为了解决这依赖问题而诞生的。享元模式通过共享技术实现相同或相...

2018-10-27 08:33:34

阅读数 50

评论数 0

设计模式之解释器模式(C++)

设计模式之解释器模式 解释器模式,给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。解释器模式解决的问题是,如果一种特定类型的问题发生的频率足够高,那么可能就只得将该问题的各个示例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释...

2018-10-27 08:33:23

阅读数 208

评论数 0

设计模式之访问者模式(C++)

设计模式之访问者模式 访问者模式,表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作。访问者模式适用于数据结构相对稳定的系统。它把数据结构和作用于结构上的操作之间耦合解脱开,使得操作几何可以相对自由地演化。访问者模式的目的使要把处理从数据结构...

2018-10-27 08:33:16

阅读数 84

评论数 0

设计模式之责任链模式(C++)

设计模式之责任链模式 责任链模式,使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这个对象练成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。该模式很好理解,其UML图如下: 每个ConcreteHandler都有一定的请求处理能力,当自己处理不了的时候...

2018-10-26 08:13:55

阅读数 113

评论数 0

设计模式之命令模式(C++)

设计模式之命令模式 命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。其UML类图如下: 该模式主要是为了隔离请求和实际执行者之间解除。就是解耦和,所有的请求统一有一个类负责,而该类负责管理这些请求(添加请求、撤销请...

2018-10-26 08:13:31

阅读数 489

评论数 1

设计模式之桥接模式(C++)

设计模式之桥接模式 桥接模式,将抽象部分与它的实现部分分离,使它们都可以独立地变化。这里说的实现分离,并不是说然抽象类与派生类分离,这没有任何意义。实现指的是抽象类和它的派生类用来实现自己的对象。其UML图如下: 结合上图理解一下其定义。抽象部分指的是Abstraction或者Refine...

2018-10-26 08:13:18

阅读数 286

评论数 0

设计模式之单例模式(C++)

设计模式之单例模式 保证一个类仅有一个实例,并提供一个访问他的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象。一个最好的办法就是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建,并且可以提供一个访问该实例的接口。其UML图如下: ...

2018-10-26 08:12:58

阅读数 58

评论数 0

设计模式之组合模式(C++)

设计模式之组合模式 组合模式,将对象组合成属性结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。其UML图如下: 一个组织有很多子组织,而无论子组织是单独一个部门或是一个分组织。该组织都希望把它们当成一样的子组织来管理。举个例子吧,就拿公司来说吧,一...

2018-10-26 08:12:49

阅读数 405

评论数 0

设计模式之备忘录模式(C++)

设计模式之备忘录模式 备忘录,在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。该模式很好理解,其UML图如下: 在Originator中提供了创建Memento的接口,具体要保存什么样的内容,则根据需求来定。而Caret...

2018-10-26 08:12:40

阅读数 67

评论数 0

设计模式之适配器模式(C++)

设计模式之适配器模式 适配器模式,将一个类的借口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式主要解决的是数据和行为都正确,但接口不符合的情况。该模式很好理解,其UML图如下: 示例代码如下: // AdapterMo...

2018-10-26 08:12:30

阅读数 53

评论数 0

设计模式之状态模式(C++)

设计模式之状态模式 状态模式,当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了类本身。状态模式主要解决的时当控制一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。其UML图如下: 在以上UML图中,...

2018-10-26 08:12:21

阅读数 165

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭