自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 其实我们都是“歌手”

哭发出的声音一般都是低音,也就是说低音可以表达心情低落或伤心,当然还可表达其它情感,比如力量雄厚感等等。笑发出的声音一般都是高音,也就是说高音可以表达高兴,当然也可以表达其它情感。比如一个女人在山上突然看到一条蛇,发出尖叫,这也是高音,表示受到了惊吓。而歌手,可以通过组合不同音调,表达出更加细腻的情感。每每听到这首歌时,心中的对侵略者的愤恨油然而起,满脑都是“打倒日本军国主义”。有人说音乐真是一种奇妙的艺术,它能陶冶人们的情趣,也能激发深藏不漏的情感。所以,从音乐的本质上来讲,我们都是“歌手”

2024-03-14 15:29:20 390

原创 这大概是三十岁左右的状态吧

早上起床就拿手机体现的是对信息的欲望,囤积物品体现的是对物质的欲望,应酬太多体现的是对社交的欲望,吃得太多体现的是对美食的欲望……事实上,我做事的诀窍恰恰和大家想的相反,就是少做事,甚至不做事。为了在压力环境中尽可能保持较大的格局和远见,我们就需要运用高级元认知能力保持对环境的觉知,因为在无觉知状态下,心智带宽会受到挤压,但在主动觉知状态下,人们就可以承受压力,集中心力做出理性的决定。适当的闲余是我们应对压力和意外的宝贵资源,但是过多的闲余可不是什么好事,如果有大量的金钱,就容易萌生无谓的欲望。

2024-03-01 17:22:18 398

原创 c++服务性能优化

C++ 性能分析1.系统级性能分析工具perf的介绍与使用 - ArnoldLu - 博客园系统级性能分析工具perf的介绍与使用2.专题:性能调优之工具---perf_中年润的博客-CSDN博客_perf性能调优之工具---perf3.Linux下用火焰图进行性能分析_OSKernelLAB(gatieme)-CSDN博客Linux下用火焰图进行性能分析4.perf + 火焰图分析程序性能 - 刘志鹏的Blog - 博客园perf命令简要介绍什么是火焰图 ...

2021-11-01 14:31:07 337

原创 系统架构-基于卫星的导航

系统架构-基于卫星的导航系统架构关注的是裂解系统需求,并利用这些只是来划分较大的系统。但是,我们必须记住这个层次的关注点通常十分抽象、宏观、影响巨大,且不涉及实现或技术细节。在设计架构时,如果我们理解这一点并采取正确的步骤,将更有坑能创建一个寿命很长的系统--更加可操作、可维护和可扩展。本章将展示如何在逻辑上对所需功能进行划分,来开发假象的卫星导航系统的系统架构。为了让这个问题可管理,我们从简化的视角开发第一和第二层次的架构,分别定义组成部分和子雄。我们将展示一个有代表性的过程步骤和开发工件子集,而

2021-04-11 16:55:14 744

原创 面向对象设计-过程

过程成功项目的特征存在很强的架构愿景; 应用了管理良好的迭代、增量式开发生命周期;1.很强的架构愿景好的软件架构通常具有以下一些共性:它们由定义良好的抽象层构成,每层代表了一种内聚的抽象,提供了定义良好的、受控的接口,并且简历在同样定义良好的、受控的底层抽象设施之上。 每一层的接口和实现之间有清晰地关注点分离,让我们能够改变一个层的实现而不会破会它的客户对它的假定。 架构很简单:共同的行为是通过共同的抽象和共同的机制来实现的。2.迭代和增量式的开发声明周期追求理性的开发过程.

2021-04-11 15:09:32 331

原创 面向对象-表示法

表示法画图的动作并不是分析或设计的要点。一张图示只是记录了系统行为的一种说明或一种架构的愿景与细节。如果遵循任何一种工程师的工作方式(软件、土木、机械、化工、建筑或其他),你很快就会意识到系统构想形成的唯一场所就是设计者的头脑。当这种设计随时间展开时,它常常被记录在一些高科技的媒质上,如同被记录在白板、餐巾纸或信封的背面一样的。1.统一建模语言拥有一种定义良好的、富有 表现力的表示法,对于软件开发过程是很重要的。首先标准的表示法让分析师或开发者能够描述一个场景,阐明一种架构,然后无二义地将这些决

2021-04-10 23:49:39 988

原创 面向对象-分类

↵分类分类是组织只是的手段。在面向对象设计中,认识到十五件的相似性让我们能够将共性放在关键抽象和机制中,最终导致更小的应用和更简单的架构。不幸的是,没有实现分类的金光大道。对于那些习惯寻找菜谱答案的读者,我们明确地指出,确定类和对象没有简单的诀窍。没有所谓的“完美”类结构,也没有一组”正确“的对象。像所有工程学科一样,我们的设计选择是对许多竞争因素的折中。幸运的是,在其他学科中存在着大量有关的分类的历史经验、从一些更为经典的方法中,面向对象分析技术出现了,它提出了一些有用的、值得推荐的实践和..

2021-04-10 16:50:26 3395

原创 类与对象

“对象是一个具有状态、行为和标识符的实体。结构和行为累死的对象定义在它们共同的类中。‘实例’和‘对象’这两个术语可以互换使用。”状态考虑一个分发医疗的自动售货机。这类对象的一般行为是当某人在投币口塞进钱,并按下选择按钮时,机器就会提供一种饮料。如果用户先选择饮料再向投币口塞钱会怎样?大部分自动售货机什么也不会干,因为用户违反了它们基本的操作假定。换言之,用户没有注意到自动售货机处于一种状态(等待塞钱)。从这个例子中,我们可以得到下面的基本定义:“对象的状态包括这个对象的所有属性(通常是静态的

2021-04-10 12:03:53 1291

原创 面向对象编程

面向对象编程那么,究竟什么是面向对象编程?我们这样定义:“面向对象编程是一种实现的方法,在这种方法中,程序被组织称许多组相互协作的对象,每个对象代表某个类的实例,而类则属于一个通过继承关系形成的层次结构。”这个定义有三个要点:(1)利用对象作为面向对象编程的基本逻辑构建块(第一章中介绍的“组成部分”层次结构),而不是算法;(2)每个对象都是某个类实例,(3)类与类之间可以通过继承关系联系在一起(第一章介绍的“是一个”层次机构)。一个程序可能看起来像是面向对象的,但是如果不满足这三点它就不是面向对

2021-04-10 00:30:24 233

原创 面向对象设计-复杂性

为什么软件的本质是复杂的正如Brooks所指出的:“软件的复杂性是一个基本特征,而不是偶然。这种固有的复杂性有四个原因:问题域的复杂性、管理开发过程的困难性、能实现的灵活性,以及刻画离散系统行为的问题。1.我们在然健中视图解决的问题常常涉及不可避免的复杂性,在其中我们可以发现数不清的竞争性需求,甚至是相反的需求。请考虑一下一家多引擎飞机的电子系统和一个蜂窝式移动电话交换系统或一个自动化机器人的需求。这些系统的基本功能已经很难理解了,现在还要加上所有的(常常是隐含的)非功能需求,如可用性、性能、成本、

2021-04-09 22:29:18 314

原创 2021-03-02 软件设计

软件设计原则:原因: 1.适应变化 2.提高代码复用度 3.可维护性 4.可扩展性图形学opengl、工程学、算法。原则:单一职责:开闭原则:依赖倒置原则: 指的是抽象不应该依赖与细节,细节应该依赖于抽象,也就是面向接口编程,而不是面向实现编程,接口隔离原则: 指的是使用多个专门的接口比使用一个接口要好。合成复用原则: 就是在一个新对象里面使用已有的对象,使之成...

2021-03-02 13:02:45 80

原创 vscode go tools 手动安装

go tools1. 手动创建目录$GOPATH/src/golang.org/x/tools2. 手动下载 go toolsgit clone https://github.com/golang/tools.git ./golang tools3. 安装 go toolsgo install golang.org/x/tools/cmd/gurugo install golang.org/x/tools/cmd/gorenamego install golan..

2020-09-18 20:51:20 1959

原创 解决go包管理代理网址无法访问:proxy.golang.org

解决方法:换一个国内能访问的代理地址:https://goproxy.cn执行命令:go env -w GOPROXY=https://goproxy.cn重新执行命令,完美通过!

2020-09-17 14:05:18 529

原创 线程锁、进程所以及分布式锁

一、线程锁互斥锁 自旋锁 读写锁 条件变量 信号量 原子锁什么时候使用互斥锁?什么时候获取自旋锁?互斥锁:首先它是睡眠锁,会进行线程的切换自旋锁:循环等待锁一般用原子锁实现的,会一直占用我们的cpulock(mutex);执行unlock(mutex);1、时间上的考虑,时间少就用自旋锁,时间长就用互斥锁2、设计上,充分利用CPU时候,自旋锁。代表是nginx。(锁的力度要足够小)互斥锁和自旋锁是可以同时使用的1、自旋锁+时间2、时间超时后改用互斥锁.

2020-09-08 19:25:43 426

原创 utf-8与gbk编码转换

#include<iconv.h>#include<stdlib.h>#include<stdio.h>#include<unistd.h>#include<fcntl.h>#include<string.h>#include<sys/stat.h>intcode_convert(char*from_charset,char*to_charset,char*inbuf,size_t...

2020-08-31 14:42:55 380

原创 innodb隔离性问题解决

1LBCC事务开始操作数据前,对其加锁,组织MVCC多版本控制快照到快照读:sql读取到数据是快照版本,也就是历史版本。如select当前读sql读取的是最新本版,通过锁机制保证读取的数据无法通过其它事务进行修改。DML是当前读。Inondb中的锁(是行锁)共享锁:多个事务对于数据可以共享访问,不能操作修改使用方式:select * from table whiere id=1 lock in share mode ---加锁 ...

2020-08-21 22:47:44 146

原创 brpc环境部署

一、安装gflagsgit clone https://github.com/gflags/gflags.gitcd gflagsgit checkout v2.0sh autogen.sh./configuremakemake install二、安装gtest下载gtest,release-1.8.0 git clone https://github.com/google/googletestgtest编译  cd googletest生成Makefi...

2020-08-04 22:02:03 857 2

原创 C++ Rest SDK

http://microsoft.github.io/cpprestsdk/index.html

2018-02-28 09:33:20 456

原创 Apache Ignite C++ API使用

https://ignite.apache.org/releases/latest/cppdoc/index.html

2018-02-28 09:30:46 1471

原创 Apache Ignite(V2.3.0)中文开发手册

https://www.zybuluo.com/liyuj/note/230739

2018-02-28 09:29:31 2388

转载 消息队列中点对点与发布订阅区别(good)

背景知识JMS一个在 Java标准化组织(JCP)内开发的标准(代号JSR 914)。2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1.1. Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消

2018-01-05 09:35:50 382

转载 SSL与TLS的区别以及介绍

SSL与TLS的区别以及介绍作者: hengstart  发布时间: 2014-01-05 13:09  阅读: 151944 次  推荐: 32   原文链接   [收藏]     SSL:(Secure Socket Layer,安全套接字层),位于可靠的面向连接的网络层协议和应用层协议之间的一种协议层。SSL通过互相认证、使用数字签名确保完整性、使用加

2017-11-15 19:27:46 964

转载 C++标准转换运算符dynamic_cast

C++标准转换运算符dynamic_castdynamic_cast (expression)dynamic_cast运算符,应该算是四个里面最特殊的一个,因为它涉及到编译器的属性设置,而且牵扯到的面向对象的多态性跟程序运行时的状态也有关系,所以不能完全的使用传统的转换方式来替代。但是也因此它是最常用,最不可缺少的一个运算符。与static_cast一样,

2017-11-15 14:44:10 277

转载 CListCtrl控件使用方法总结

CListCtrl控件使用方法总结今天第一次用CListCtrl控件,遇到不少问题,查了许多资料,现将用到的一些东西总结如下:以下未经说明,listctrl默认view 风格为report相关类及处理函数MFC:CListCtrl类SDK:以 “ListView_”开头的一些宏。如 ListView_InsertColumn1. CListCtr

2017-11-15 14:23:37 379

转载 8_1——非阻塞模式(ioctlsocket)

//Server.cpp  #include   #include              //winsock.h (2种套接字版本)  #pragma comment(lib,"ws2_32.lib") //wsock32.lib   #define MAXSIZE 100 //   int main()  {      //      int retV

2017-11-15 14:20:35 333 1

转载 g++编译命令选项

gcc & g++现在是gnu中最主要和最流行的c & c++编译器 。g++是c++的命令,以.cpp为主,对于c语言后缀名一般为.c。这时候命令换做gcc即可。其实是无关紧要的。其实编译器是根据gcc还是g++来确定是按照C标准还是C++标准编译链接。下面以Test.cpp为例:命令: g++ Test.cpp功能:生成默认为a.exe的文件,这个过程包

2017-11-14 10:20:50 927

转载 SMTP VS C++实现向多人发送邮件,可带多个附件

#ifndef __SMTP_H__ //避免重复包含#define __SMTP_H__#include #include #include #include #include #include const int MAXLEN = 1024;const int MAX_FILE_LEN = 6000;static const char base64Char[] = "

2017-09-14 10:25:52 1058

转载 Base64编解码(C++版)

#include using namespace std;class ZBase64{public: /*编码 DataByte [in]输入的数据长度,以字节为单位 */ string Encode(const unsigned char* Data,int DataByte); /*解码 DataByte

2017-09-06 17:02:47 726

转载 windows与linux socket程序的不同

1)头文件 windows下winsock.h或winsock2.hlinux下netinet/in.h(大部分都在这儿),unistd.h(close函数在这儿),sys/socket.h(在in.h里已经包含了,可以省了)2)初始化windows下需要用WSAStartup启动Ws2_32.lib,并且要用#pragma comment(lib,"Ws2_32")来

2017-09-06 16:57:15 307

转载 SMTP协议发送邮件和附件

// testsmtp.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include #include "base64.h"#pragma comment( lib,"ws2_32.lib" ) #defi

2017-09-06 16:55:20 1980

转载 MIME协议分析

MIME协议分析第1章.    MIME概述MIME,全称为“Multipurpose Internet Mail Extensions”,比较确切的中文名称为“多用途互联网邮件扩展”。它是当前广泛应用的一种电子邮件技术规范,基本内容定义于RFC 2045-2049(注意RFC1521和RFC1522是它的过时版本)。MIME试图在不改变SMTP协议和RFC822(

2017-09-06 16:51:09 378

转载 MFC CAsyncSocket

MFC CAsyncSocket 由于都是直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。其实,为简化套接字编程,MFC 定义了两个套接字类:CAsyncSocket、CSocket。CAsyncSocket类在低层次上对 Windows Sockets API 进行了封装,其成员函数和 Windows Sockets API 函数直接相对应 。一个CAsyncSock

2017-09-06 10:13:44 587

转载 POP3协议分析

POP3协议分析第1章.    POP3概述POP3全称为Post Office Protocol version3,即邮局协议第3版。它被用户代理用来邮件服务器取得邮件。POP3采用的也是C/S通信模型,对应的RFC文档为RFC1939。该协议非常简单,所以我们只重点介绍其通信过程,而相关的一些概念和术语请参考RFC文档或另外一篇文章《SMTP协议分析》第2章.    

2017-09-06 10:11:25 756

转载 SMTP协议分析

SMTP协议分析第1章.    SMTP概述1.1. SMTP在邮件通信中的位置SMTP,即简单邮件传送协议,所对应RFC文档为RFC821。同http等多数应用层协议一样,它工作在C/S模式下,用来实现因特网上的邮件传送。SMTP在整个电子邮件通信中所处的位置如图1所示。图1电子邮件的通信过程可以看出,SMTP是用来将客户机上的邮件传送到服务器

2017-09-06 10:05:55 2673

转载 使用SMTP 和POP3 协议实现收发邮件(C/C++)

SMTP协议和POP3协议就不详细阐述了 ,网上一搜索会有一大把给你解释的。下面直接贴代码:首先写一个class Sock类,这个类的功能主要是创建套接字(即int sock),用套接字來连接邮箱服务器。类里面还带有send_socket和recv_socket两个函数,其功能分别是向邮箱服务器发送协议指令和接收服务器反馈回来的信息。sock.h文件  #ifnde

2017-09-06 10:02:41 7225 2

转载 C++设计模式-Flyweight享元模式

Flyweight享元模式作用:运用共享技术有效地支持大量细粒度的对象。内部状态intrinsic和外部状态extrinsic:1)Flyweight模式中,最重要的是将对象分解成intrinsic和extrinsic两部分。2)内部状态:在享元对象内部并且不会随环境改变而改变的共享部分,可以称为是享元对象的内部状态3)外部状态:而随环境改变而改变的,取决于应用

2017-09-01 11:12:45 258

转载 【C++ STL】深入解析神秘的 --- 仿函数

一,概述        仿函数(functor),就是使一个类的使用看上去象一个函数。其实现就是类中实现一个operator(),这个类就有了类似函数的行为,就是一个仿函数类了。  有些功能的的代码,会在不同的成员函数中用到,想复用这些代码。                            1)公共的函数,可以,这是一个解决方法,不过函数用到的一些变量,就可能成为公共的全

2017-08-28 13:10:41 270

转载 strftime和strptime使用(时间日期的格式控制函数)

#include #include #include #include  int main(){ struct tm *tm_ptr,timestruct; time_t the_time; char *buf[256];  (void) time(&the_time); tm_ptr=localtime(&the_time); strftime(buf

2017-08-22 09:48:25 801

转载 MFC Tab Control控件的详细使用

1. 新建一个MFC工程, 取名MyTab, 选择Dialog based, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最后为164X203. 在ClassWizard为其添加变

2017-08-18 11:01:10 375

转载 Linux下 GB2312和UTF8转换接口

#include #include #include #include using namespace std;//Linux下 GB2312和UTF8转换接口class CUtilTools {public: CUtilTools(){}; ~CUtilTools(){}; //iInLen的长度不包括\0,应该用strlen。返回值是处理

2017-08-10 16:58:11 556

空空如也

空空如也

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

TA关注的人

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