自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 linux共享内存相关

概念共享内存共享内存可以说是最有用的进程间通信方式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。临界资源:多个进程看到的同一个资源(公共资源)临界区:访问临界资源的代码段。原子操作:操作一旦开始执行,就一定要执行结束,中途不能被任何原因打断,要么全做,要么不做,不能只做一半。信号量(用来协调进程对共享资源的访问),

2022-01-17 20:59:30 131

原创 JNI知识

一. JNI介绍JNI(Java Native Interface),通过使用 Java本地接口,实现Java(或kotlin)代码和其他语言(c/c++)的代码的交互,交互是JNI的精髓,意味着java和c++之间可以很方便地进行相互访问变量,调用对方的函数,如java可以调用c++的函数,c++也能调用java的函数。介绍JNI中几个比较重要的变量:JavaVM:虚拟机的代表,一个进程创建一个。可以从JavaVM中获取JNIEnv指针,kotlin层访问C++层的时候会自动创建,C++访问ko

2022-01-17 19:15:58 1137

原创 设计模式-装饰器模式

/*装饰器模式:动态地扩展一个类的功能,是继承的替代模式,装饰类和被装饰类独立发展,不会相互耦合*/#include<iostream>#include<string>using namespace std;class Shape{public: virtual void draw() = 0; virtual ~Shape(){}};class Circle : public Shape{public: void draw(){cout<<

2021-04-10 01:24:39 68

原创 设计模式-模版模式

/*模板模式:算法骨架定义在抽象基类中,实现细节的变化实现在各个子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤*/#include <iostream>using namespace std;class Computer{public: void produce() //算法骨架定义在抽象基类中 { installCpu(); installRam(); }private: vi

2021-04-10 01:24:06 66

原创 设计模式-策略模式

#inlcude<iostream>using namespace std;//策略模式class Hurt{public: virtual void attack() = 0;};class AdcHurt : Hurt{public: void attack() { cout<<"Adc attack."<<endl; }};class ApcHurt : Hurt{public: void attack() { co

2021-04-10 01:23:19 74

原创 设计模式-单例模式

/*单例:一个类仅有一个实例化对象(全局接口getInstance提供)。要点:static成员变量,构造函数私有,禁止拷贝赋值*/#include <iostream>#include <memory>#include <mutex>using namespace std;//线程安全,智能指针版本mutex mt;class Singleton {public: ~Singleton(){cout<<"destructor

2021-04-10 01:22:59 41

原创 设计模式-适配器模式

/*适配器模式:适配器继承或依赖已有的类,实现想要的目标接口,易造成凌乱*/#include<iostream>using namespace std;class Deque //已有类,被适配{public: void push_front(){cout<<"push front"<<endl;} void push_back(){cout<<"push back"<<endl;} void pop_front(){cou

2021-04-10 01:22:11 40

原创 设计模式-代理模式

/*代理模式:控制对真实对象的访问,有别于装饰模式(动态添加功能)*///代理对象与真实对象继承同一个抽象接口,有相同的接口,所以它能够在任何时刻都能够代理真实对象。//代理角色内部包含有对真实对象的引用,所以她可以操作真实对象,同时也可以附加其他的操作#include <iostream>using namespace std;class Play{public: virtual ~Play(){} virtual void play1() = 0; v

2021-04-10 01:21:25 42

原创 设计模式-观察者模式

/*观察者模式:定义对象间一对多的依赖关系,当一个对象的状态发生改变,依赖它的多个对象都要得到通知并自动更新*/#include <iostream>#include <memory>#include <list>#include <algorithm>using namespace std;class Observer { //观察者基类public: virtual ~Observer(){}; //基类的析构函数写

2021-04-10 01:20:53 45

原创 设计模式-工厂模式

/*创建对象时不会对客户端暴露创建逻辑,通过使用一个共同的接口(工厂)来创建对象简单工厂:一个工厂->多个产品抽象工厂:多个工厂->多个产品*/#include<iostream>using namespace std;typedef enum{BenzType, BmwType} carType;class Car{public: virtual void car() = 0;};class Benz : public Car{public: v

2021-04-10 01:20:06 70

原创 设计模式-命令模式

设计模式-命令模式/*命令模式:将命令请求封装成一个对象,下发一个命令,就在命令接收者处增加一个对象,最后交由命令执行者执行。可对命令请求进行参数化,可执行排队,添加,撤销操作。命令请求者不用关注谁来执行 怎么执行,命令请求者和命令执行者解耦。*/#include <iostream>#include <vector>using namespace std;class Cooker { //命令执行者public: void bakeChicken()

2021-04-10 01:17:55 50

原创 冒泡,选择,插入,快速排序,二分查找简单实现

冒泡,选择,插入,快速排序,二分查找算法的简单实现#include <iostream>using namespace std;void swap(int& a,int& b){ int temp = a; a = b; b = temp;}//////////////二分查找//////////////////int binarySearch(int array[], int n, int t){ int l = 0, r = n-1; int m

2021-04-09 23:01:41 165 1

原创 restful框架,计算机网络

基于restful框架,使用socket实现进程间通信个人对restful框架的理解:资源的表现层状态转化,简而言之,以资源(比如a进程的一个状态值,0或者1)为核心,一个资源对应一个URL,利用URL能获取或者操作对应的资源。项目中,基于restful框架,使用socket实现进程间通信的思路:1. 启restServer...

2021-04-09 22:49:01 507

空空如也

空空如也

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

TA关注的人

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