自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 收藏
  • 关注

原创 系统卡死问题解决思路

最近工作中遇到了一个工作以来最难解决的问题,总结以下解决思路,环境是fedora27系统,系统莫名奇妙的宕机,具体现象描述如下:1.系统没有规律的出现宕机,大概需要运行三小时以上;2.系统出现宕机后,使用网络工具无法登录,使用终端无法登录,只有重启能恢复正常;3.应用程序日志没有记录任何异常信息,只是停留在一定时间后,就不在记录日志信息了,系统一共运行三个应用程序,到相同的时间点,都不记录日志信息了;4.使用top命令监控应用程序的CPU使用情况和内存使用情况,并没有任何的异常;5.使用

2021-10-27 16:05:41 595

原创 程序设计模式(十六) C++ 备忘录( Memento)模式

备忘录模式就是在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。场景:(1)我们玩单机游戏的时候总会遇到老婆大人的各位事情,一会去买瓶醋了,一会去打个酱油了,会耽误我们玩游戏的进程,但是此时我们能有“保存游戏”这个宝贝,我们的主基地不会在我们打酱油的时候被对手拆掉。    这“保存游戏”的功能其实就是备忘录模式

2017-07-17 10:35:27 553

原创 程序设计模式(十四) C++ 迭代器(Iterator)模式

迭代器模式是提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象。迭代器分内部迭代器和外部迭代器,内部迭代器与对象耦合紧密,不推荐使用。外部迭代器与聚合容器的内部对象松耦合,推荐使用。迭代器模式就是分离了集合对象的遍历行为,抽象出一个迭代器类来负责,这样既可以做到不暴露集合的内部结构,又可让外部代码透明地访问集 合内部的数据。而且,可以同时定义多个迭代器来遍历,互不冲突。对于迭

2017-07-06 16:05:57 943

原创 程序设计模式(十三) C++ 解释器(Interpreter Pattern)模式

3 行为型思想:当有一个语言需要解释执行, 并且你可将该语言中的句子表示为一个抽象语法树时,定义一个解释器,这个解释器使用该表示来解释语言中的句子。类图:抽象表达式角色(AbstractExpression): 声明一个抽象的解释操作,这个接口为所有具体表达式角色都要实现的。终结符表达式角色(TerminalExpression): 实现与文法中的元素相关联的解释操作,

2017-06-16 11:31:23 929

原创 程序设计模式(十二) C++ 代理(Proxy)模式

2.7 Proxy代理模式为其他对象提供一种代理以控制对这个对象的访问。 在需要用比较通用和复杂的对象指针代替简单的的指针的时候,使用代理模式。有四种常用的情况:       1、远程代理,也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。       2、虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真实对象

2017-05-25 09:39:52 3347

原创 程序设计模式(十一) C++ 享元(Flyweight)模式

2.6  Flyweight想想我们编辑文档用的wps,文档里文字很多都是重复的,我们不可能为每一个出现的汉字都创建独立的空间,这样代价太大,最好的办法就是共享其中相同的部分,使得需要创建的对象降到最小,这个就是享元模式的核心,即运用共享技术有效地支持大量细粒度的对象。享元对象能做到共享的关键是区分内部状态(Internal State)和外部状态(External State

2017-05-23 09:07:48 438

原创 程序设计模式(十) C++ 外观(Facade)模式

2.5 Facade<!---->想想我们小时候玩的四驱车,里面的构造很复杂,马达,舵机,电池组等等,而我们控制它却非常简单,只要打开电池开关,他就可以跑。我们其实不用知道它里面是如何工作,只要知道拨动开关它就可以工作就行了,这个开关其实就四驱车给我们的一个友好的组件,使得我们可以很方便的控制它。外观模式其实定义了一个高层接口,该接口为子系统中的一组接口提供一个一致的界面,

2017-05-22 09:44:34 432

原创 程序设计模式(九) C++ 装饰(Decorator)模式

2.4  Decorator装饰模式提供了更加灵活的向对象添加职责的方式。可以用添加和分离的方法,用装饰在运行时刻增加和删除职责。装饰模式提供了一种“即用即付”的方法来添加职责。它并不试图在一个复杂的可定制的类中支持所有可预见的特征,相反,你可以定义一个简单的类,并且用装饰类给它逐渐地添加功能。可以从简单的部件组合出复杂的功能。装饰器模式就是基于对象组合的方式,可以很灵活的给对象添

2017-05-15 11:06:04 704

原创 程序设计模式(八) C++ 组合(Composite)模式

2.3   Composite我们PC用到的文件系统,其实就是我们数据结构里的树形结构,我们处理树中的每个节点时,其实不用考虑他是叶子节点还是根节点,因为他们的成员函数都是一样的,这个就是组合模式的精髓。他模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。将对象组合成树形结构以表示“部分-整体”的层次结构。组

2017-05-15 09:38:01 642

原创 程序设计模式(七) C++ 桥(Bridge)模式

2.2 Bridge在软件系统中,某些类型由于自身的逻辑,它具有两个或多个维度的变化。那么为了应对这种“多维度的变化”(即两个以上变化的原因)的系统,可采用Bridge模式来进行设计,使系统中类的个数更少,且系统扩展更为方便。桥接模式将继承关系转换为关联关系,从而降低了类与类之间的耦合,减少了代码编写量。思想:将一个类的抽象定义和具体实现解耦

2017-05-12 14:48:50 956

原创 程序设计模式(六) C++ 适配器(Adapter)模式

2 结构型2.1 Adapter适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法在一起工作的两个类能够在一起工作。比如说我的hp笔记本,美国产品,人家美国的电压是110V的,而我们中国的电压是220V,要在中国能使用,必须找个变压器转一下电压才可以。这个变压器就是个适配器。适配器模式有类适配器和对象适配器两种模式,我们将分别讨论。

2017-05-12 08:17:35 313

原创 程序设计模式(五) C++ 单实例(Singleton)模式

单例模式,可以说设计模式中最常应用的一种模式了,据说也是面试官最喜欢的题目。但是如果没有学过设计模式的人,可能不会想到要去应用单例模式,面对单例模式适用的情况,可能会优先考虑使用全局或者静态变量的方式,这样比较简单,也是没学过设计模式的人所能想到的最简单的方式了。一般情况下,我们建立的一些类是属于工具性质的,基本不用存储太多的跟自身有关的数据,在这种情况下,每次都去new一个对象,即增加了开销

2017-05-11 15:51:35 274

原创 程序设计模式(四) C++ 原型(Prototype)模式

原型(Prototype)模式是用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。思想:克 隆一个已有的类的实例(大家相比都用过甚至写过类的Clone实现,应该很容易理解了)。场景:应 用Clone的场景应该说非常多,理想情况下我当然希望任何类都能Clone, 需要的时候就能Clone一份一模一样的出来。实现:这 里将的实现主要之实现的表现形式,而不是如何用具体的

2017-05-10 16:13:28 622

原创 程序设计模式(三) C++ Builder模式

Builder模式是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。Builder模式和AbstractFactory模式在功能上很相似,因为都是用来创建大的复杂的对象,它们的区别是:Builder模式强调的是一步步创建对象,并通过相同的创建过程可以获得不同的结果对象,一般来说Builder模式中对象不是直接返回的。而在AbstractFactory模式中对象是直接返回的

2017-05-09 09:47:23 1995

原创 程序设计模式(二) C++抽象工厂(Abstract Factory)模式

1.2 Abstract Factory抽象工厂跟工厂方法模式可能区分有点模糊:工厂方法模式针对的是一个产品等级结构;而抽象工厂模式针对的是多个产品等级结构。抽象工厂模式主要用来实现生产一系列的产品。思想:不直接通过对象的具体实现类,而是通过使用专门的类来负责一组相关联的对象的创建。场景:最典型的应用场景是:您只想暴露对象的接口而不想暴露具体的实现类,但是又想提供实例化对象的接

2017-05-08 16:27:54 273

原创 程序设计模式(一) C++工厂模式(Factory method)

谈到设计模式,绝对应该一起来说说重构。重构给我们带来了什么?除了作为对遗留代码的改进的方法,另一 大意义在于,可以让我们在写程序的时候可以不需事先考虑太多的代码组织问题,当然这其中也包括了应用模式的问题。尽管大多数开发者都已经养成了写代码前先 从设计开始的习惯,但是,这种程度的设计,涉及到到大局、到总体架构、到主要的模块划分我觉得就够了。换句话说,这时就能写代码了。这就得益于重构的思想 了。如果没

2017-05-08 09:56:37 426 1

转载 Linux Mint Qt5 开发环境搭建

1、下载 Qt5 离线安装包下载地址:http://www.qt.io/download-open-source/进入后,请注意页面最下方有个【View All Downloads】链接,点击它可找到离线安装包! 根据自己的操作系统版本,选择对应的安装包:     2、添加执行权限下载完成后,得到离线安装包,打开【终端】,进入离线安装包所在的目录,然后执行命

2017-01-18 14:38:38 1915

转载 VMware虚拟机中调整Linux分区大小——使用GParted

VMware虚拟机中调整Linux分区大小——使用GParted     虚拟机分配了50G大小的空间,最近发现不够用,于是将扩展一下分区的大小,查了几种方法都不是很好,后来借助了gparted分区空间完成了,这个工具简单,方便,下面就简单的介绍一下。扩展分区主要要分为两步Ubuntu用GParted合并分区http://

2017-01-16 10:04:43 866

转载 c++ list, vector, map, set 区别与用法比较

List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要拷贝和移动数据,只需要

2016-12-30 10:53:52 302

转载 XML 新手入门基础知识

使用正确的标记如果您是 XML 新手,本文将为您介绍 XML 文档的基础结构,以及创建构造良好的 XML 需要遵循的规则,包括命名约定、正确的标记嵌套、属性规则、声明和实体。您还可以从本文了解到 DTD 和 schema 的验证。1评论Kay Whatley, 技术作家, 自由职业者2009 年 3 月 16 日内容在

2016-12-15 13:50:51 257

转载 POCO C++库学习和分析 -- 数据类型转换

1. ByteOrder         ByteOrder提供了一系列的静态函数用于字节序的转换。在使用这个类之前,让我们先了解一下它所解决问题。它主要用来解决big-endian和litter-endian的问题。1.1 big-endian和litter-endian         big-endian和litter-endian指的是读取存储时的数据解释方式。它们只和多字节类

2016-11-07 16:20:10 1859

转载 任务

C++ POCO 创建人物

2016-11-07 13:32:15 379

转载 TCPServer框架(翻译官网pdf)

1、Poco::Net::TCPServer实现一个多线程的TCP 服务器。2、服务器使用一个ServerSocket接收请求的连接,服务器使连接保持以队列形式。3、正在运行的线程从队列中取出连接然后处理它们;运行的线程会自动调整,依赖于队列中等待的连接数量。4、TCPServer创建它自己的线程,接受连接,然后把它们放到队列中。5、TCPServer使用 TCPServerCon

2016-09-01 09:03:09 505

转载 POCO C++库学习和分析 -- 通知和事件

1. 任务的定义        任务虽然在Poco::Foundation库的目录结构中被单独划出,其实也可以被看成线程的应用,放在线程章节。首先来看一下Poco中对于任务的描述:task主要应用在GUI和Seerver程序中,用于追踪后台线程的进度。应用Poco任务时,需要类Poco::Task和类Poco::TaskManager配合使用。其中类Poco::Task继承自Poco:

2016-08-31 16:10:58 3357

转载 POCO C++库学习和分析 -- 日志 (一)

日志对于程序来说是非常重要的,特别是对一些大型程序而言。一旦程序被发布,在现场日志几乎是程序员唯一可以获取程序信息的手段。Poco作为一个框架类库,提供了非常多的日志种类供程序员选用。文章将分两个部分,对于Poco日志进行介绍。第一部分主要以翻译Poco文档为主,第二部分则探讨Poco日志的实现。1. Poco库日志接口1.1  总体介绍          Poco中的日志模块

2016-08-31 13:15:05 12104

转载 Poco C++库简介

学习一个框架前,要先明白它的是什么,为什么,怎么用.下面这些文字,是从中文poco官网上转过来的,正如poco c++库的特点,非常清晰,代码风格更是一目了然.   poco开发库的特点,非常适合写后台处理程序,效率也是很高的.前台界面程序使用Qt框架库,非常好,两个库相辅相成,可解决项目上的大部分问题.一 概述Poco C++库是:一系列C++类库,类似Java类库,

2016-08-31 10:32:26 17290

转载 POCO C++例程整理--有关线程

本文主要整理了网上见到的,以及自己编写的有关隘poco的例子,本着开源共享的精神,供大家参考,加快poco框架库的学习和使用,加快自己在项目上的应用,加速产品的设计与开发. 例子一: 传入对象    在Poco中,将入口函数抽象为一个类Runnable,该类提供void run()接口,用户需要继承至该类来实现自定义的入口函数。Poco将线程也抽象为一个类Thread,提供了start

2016-08-31 09:20:23 1523

转载 TCP方式的Socket

TCPServer要用TCP的客户端来测试。POCO中TCP方式的Socket有:Poco::Net::ServerSocketPoco::Net::StreamSocketPoco::Net::DialogSocketPoco::Net::SecureServerSocket       ---相对于SSLPoco::Net::SecureStreamSocket      

2016-08-29 14:46:23 673

转载 Applications框架(翻译官网pdf)

Applications with POCO1、POCO应用程序框架,支持以下几种需求:     (1)命令行参数处理;(2)配置文件;(3)初始化和关闭;(4)日志。2、POCO支持以下两种类型的应用程序:命令行应用程序和服务器应用程序。Application Subsystems3、一个应用程序由不同的subsystems组成;    Subsystems可以帮助我们初

2016-08-29 10:42:37 601

转载 Poco学习资料

学习网址:1、http://www.cppblog.com/richbirdandy/archive/2010/09/10/123994.html       一篇博客:Poco::TCPServer框架解析2、http://pocoproject.org/documentation/index.html         POCO官网(源码下载、PDF、文档、社区)3、http://w

2016-08-29 09:08:37 1198

转载 POCO C++简介

POCOC++是一个开源的C++类库的集合,它主要提供简单的、快速的网络和可移植应用程序的C++开发,这个类库和C++标准库可以很好的集成并填补C++标准库的功能空缺。POCO库的模块化、高效的设计及实现使得POCO特别适合嵌入式开发。在嵌入式开发领域,由于C++既适合底层(设备I/O、中断处理等)和高层面向对象开发,越来越流行。当然POCO也准备好了面对企业级挑战。C++简介" title=

2016-07-25 15:00:31 1352

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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