自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

koko_TT的博客

Show me the code :)

原创 Linux进程间互斥锁 (共享内存实现)

01 原理 开辟一块共享内存,使得相关进程均可访问同一块区域,再将互斥锁定义在该区域(即共享内存)上,使得相关进程可以使用该锁。 02 进程间的互斥锁和线程间互斥锁的区别 函数pthread_mutex_init(互斥锁地址, 属性对象地址)在定义一把线程锁的时候第二个参数通常传为NULL,...

2019-07-24 22:58:44

阅读数 268

评论数 1

原创 Linux线程池的原理及实现

01 为什么需要线程池 首要明白两个地方: 线程的创建需要内存资源 线程的创建和销毁需要时间资源 显而易见,由于以上两个原因,不得不寻找一个折衷的方式面对多任务的问题。如果我们只创建一定量的线程,且在一个线程执行完某一任务后,重复利用该线程去处理新的任务而不是直接销毁它,那么通过这...

2019-07-18 15:30:14

阅读数 196

评论数 0

原创 多元线性回归与梯度下降法原理及公式推导(附Python代码)

引 以线性方程为例,设有线性方程: ytrue=θ0+θ1x1+θ2x2…+θnxny_{true} = \theta_0 + \theta_1x_1 + \theta_2x_2…+ \theta_nx_nytrue​=θ0​+θ1​x1​+θ2​x2​…+θn​xn​ 如果现在我们手头上已经有了...

2019-04-03 10:26:47

阅读数 1115

评论数 3

原创 opencv与openmv?

01 对opencv的认知 有图像处理的项目用matlab来仿真做的话,体验不是很友好,尽管matlab在数据可视化方面做的无可匹敌。但是图像处理中,经常会要调用各种滤波,分割,二值化的函数,在这一点上matlab并未提供比较全面的库函数可以调用,opencv则封装了丰富的图像处理函数,使用其做算...

2019-09-12 14:40:57

阅读数 3070

评论数 0

原创 C++多线程单例模式

01 原理 单例模式即是私有化构造函数,创建时通过类中静态函数获得单一实例的一种特殊类。在多线程下需要加上互斥锁,保证单例模式的创建和析构是原子性的。 由于单例模式的特殊性,这里不讨论其析构函数,个人在具体使用的环境中不需要析构单例模式的实例。 02 结果 创建十个线程来测试。 singleton...

2019-09-05 11:47:44

阅读数 77

评论数 0

原创 C++ 堆排序

01 思路 以从小到大排列为例。 代码用到以下几个模块 swap模块 完成一个数组中的两个位置的元素交换 heapify模块 完成将一个子树构建为根节点最大的形式。 如果根节点不是最大值,那么交换后将对传入最大位置的序号进行递归。 build_heap模...

2019-08-20 16:31:22

阅读数 31

评论数 0

原创 C++ 生产者消费者模式的简单实现

01 模式简介 生产者消费者模式可以理解为在生产者和消费者之间添加一个缓冲区,生产者只负责向缓冲区添加元素,而消费者只负责从缓冲区提取元素并使用。 这么做可以对生产者与消费者进行解耦,这样一来消费者不直接调用生产者,使得生产者的不会因为生产者的具体处理而阻塞,充分利用资源。 02 思路介绍 ...

2019-08-20 11:47:03

阅读数 118

评论数 0

原创 C++中 atomic和mutex的效率

01 引 由于“哪怕是对一个bool型变量的赋值和读取都不保证原子性“,所以在并发环境下,操作可能产生Data Race的变量需要认为的加以保护。 常用的措施 用互斥量mutex的包裹的临界区。 利用atomic方式,赋予其原子性。 那么这两种措施效率如何呢? 02 比对结果 ...

2019-08-16 10:29:37

阅读数 197

评论数 0

原创 Linux共享内存 封装

01 Show me the code #include <sys/shm.h> #include <unistd.h> #include <stdio.h> #include <assert.h> #include <stdlib.h>...

2019-07-25 15:20:25

阅读数 36

评论数 0

原创 LINUX进程变量隔离 虚拟地址

01 虚拟地址 Linux系统中,fork()函数创建的子进程,会忠实的将父进程的内存内容进行拷贝,尽管在fork()函数之前定义的变量在各自进程块中的虚拟地址相同,但是不同进程对其的操作是相互隔离的,而不管是fork()之前的全局变量、静态变量还是局部变量,都是如此。 如果想使得两个进程操作...

2019-07-24 22:33:57

阅读数 26

评论数 0

原创 Linux内核驱动“Hello World”

01 驱动组成的三大部分 一个内核驱动主要分为三大部分: module_init()——入口 编写初始化函数并将函数名传入入口函数 初始化函数的格式为int __init func_name(void) 即返回值为int型,参数类型为void,函数名前的__init表示将其加...

2019-07-19 21:09:56

阅读数 19

评论数 0

原创 C++桥模式

01 桥模式的用途 若一个类具有两种属性:属性A和属性B。其中A属性有三种B属性有四种。那么实际需要编写的类的个数为3*4 = 12如果我们把具体的类抽象成一种需要装载两种属性的模具,那么需要编写的代码就大大减少。 02 构建方法 以两种属性为例 构建属性A的抽象基类 为不同的属性A构建不同的具...

2019-06-24 16:48:56

阅读数 58

评论数 0

原创 C++代理模式

01 使用场景 不想让一个类暴露,去填充一个接口需求,这时就构建一个代理类,他封装被代理对象完成实际的调用需要。 02 构建方法 构建一个只含纯虚方法的基类,被代理类和代理类都是该基类的派生类。 被代理类重写基类的方法。 代理类 内含一个基类类型的指针,实际后续指向堆上的被代理类实例。 构造函...

2019-06-24 16:47:52

阅读数 42

评论数 0

原创 C++工厂模式

01 工厂模式解决了什么问题 在实际的项目中,如果只是借助关键字new来创建类的实例,在类的种类越来越多的情况下,很难准确的记住他们的名字,这时候可以将相关类的创建封装在一种"工厂类"中。当要创建相关的类的实例的时候,就借助"工厂实例"中的成员函数完成实例的...

2019-06-22 22:21:39

阅读数 55

评论数 0

原创 C++观察者模式

01 观察者模式做了什么 存在过程如下——被观察者更新信息,观察者从被观察者处获取更新的信息,现在我们想省去第二步,即如果观察者订阅了被观察者,那么当被观察者更新信息的时候,被观察者可以自动获取更新。 考虑一个具体的模型。 对于老师和学生来说,老师是被观察者,学生是观察者,当老师更新一个消息...

2019-06-21 16:50:34

阅读数 214

评论数 0

原创 C++适配器模式

01 用途 两个接口不匹配的类想要交互,直接改接口太繁琐(大工程就体现出来了),就添加第三类(适配器类)来协调两者的关系。 形象理解,假设现在有两个忍者——年轻的忍者和年老的忍者,其中年轻的攻击漏洞百出,而年老的则成熟稳健,现在年轻的忍者需要参加考试,所以想打出老年忍者成熟稳健的拳法,适配器就...

2019-06-21 11:40:53

阅读数 43

评论数 0

原创 C++默认构造函数、拷贝构造函数、拷贝赋值函数

注意 前两者会在创建一个类实例的时候被调用,而最后的拷贝赋值函数是对一个已经创建的实力进行=调用的时候被调用。 拷贝赋值函数的返回值应该为该类的一个引用,否则无法使用classA = classB = classC。 Show me the code #include <iostream...

2019-05-30 20:28:11

阅读数 525

评论数 0

原创 C++生成均匀分布随机数(附C++代码)

生成均匀分布随机数的准备 准备随机数生成引擎,这里用到默认引擎——defalut_random_engin my_engine_name 创建均匀分布随机数生成器实例——uniform_int_distribution my_object_name(LOW, HIGH)(两边均为闭区间) 传入引...

2019-05-23 11:50:21

阅读数 719

评论数 0

原创 C++多线程异步并行——async、future(附C++代码)

先上代码体会 #include <iostream> #include <future> #include <chrono> using namespace std; // 定义一个会返回5的函数 int fun(char c) { // 循环...

2019-05-21 22:10:01

阅读数 425

评论数 0

原创 Mysql 成长之路(六)%与_通配符及使用建议

两种通配符的使用 原表 mysql> select * from simple_account; +----+-----------+-------+-----+---------+ | id | name | sex | age | money | +----+-----...

2019-05-06 11:03:13

阅读数 17

评论数 0

原创 CSS 成长之路(九)边框及属性

边框及属性 定义边框方式 border-width border-style border-color三者缺一不可,或者连写为border: [A] [B] [C];缺一不可。 A为边框宽度,单位px。 B为边框样式 实线:solid 虚线:dashed 更虚的线:dotted C为边框...

2019-05-05 11:27:38

阅读数 12

评论数 0

原创 CSS 成长之路(八)背景图平铺,背景图位置与背景图滚动

背景图属性 设置背景颜色 background-color 设置背景图 background-image: url(IMAGE_PATH);这里路径为相对路径。 是否平铺 background-repeat 平铺(默认):repeat 不平铺:no-repeat 横铺:repea...

2019-05-05 11:20:26

阅读数 268

评论数 0

原创 CSS 成长之路(七)层叠性、继承性与优先级

CSS三大特征性 层叠性 解决样式处理冲突的能力,如果对在多处定义同一部分,若各处的优先级相同,则按照最后的定义为准。 继承性 大多跟文字有关的特性如字号和颜色可以被继承,但高度不会被继承。 优先级 根据样式定义的方式不同,分为不同优先级,如果在多处对同一部分进行定义,则以优先级高...

2019-05-05 10:44:56

阅读数 18

评论数 0

原创 CSS 成长之路(六)顶线、中线、基线、底线与行距

示意图 行距定义 行距为上下两行基线与基线之间的距离。

2019-05-05 10:33:27

阅读数 158

评论数 0

原创 CSS 成长之路(五)文本垂直居中与设置背景图

文本垂直居中 方法: 盒内元素的行高等于盒子的高度即可完成文本的垂直居中。 结果如下图: 将如下代码复制保存为.html格式的文件,并用浏览器查看结果。 注意第23与26行设置两者高度相同。 <!doctype html> <html lang="en">...

2019-04-28 11:23:04

阅读数 43

评论数 0

原创 CSS 成长之路(四)显示模式与显示模式转换

显示模式 块级元素——block 如:div 一个元素占一整行,可以改变大小 行内元素——inline 如:span 可以多个占一行,不可以改变大小 行内块元素——inline-block 如:img 可以多个占一行,可以改变大小 显示模式转换——display 转行内元素...

2019-04-28 10:55:20

阅读数 28

评论数 0

原创 CSS 成长之路(三)伪类选择器

伪类选择器用途 用来修饰标签<a href= "#">xxx</a>修饰链接内容在未访问link、访问后visited、鼠标悬停时hover和鼠标点下未松开时active的状态。 注意,这四个内容的顺序不可以调换,用的最多的未link和hover。 类...

2019-04-26 23:24:12

阅读数 23

评论数 0

原创 CSS 成长之路(二)后代选择器、子代选择器、交集选择器与并集选择器

后代、子代选择器 在HTML中普遍存在标签的嵌套,观察如下HTML5代码。 <div> <span>111</span> <ul> <li> <span>222</...

2019-04-26 23:11:22

阅读数 144

评论数 0

原创 CSS 成长之路(一)颜色、字体属性及文本属性

颜色 颜色属性color的值不仅可以用颜色名表示如blue或者red等,还可以#加6位16进制的数字表示。 如#123456,其中12两位表示红色的程度,34两位表示绿色的程度,56两位表示蓝色的程度,最终的颜色右三种颜色合成。 同一颜色的两位相同的话可以简写,如红色#ff0000可以简写为#f0...

2019-04-26 22:43:54

阅读数 25

评论数 0

原创 HTML5 成长之路 (四)表单、表单域与表单控件

Show me the code 将代码保存为.html格式结尾的文件并用浏览器查看结果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"&...

2019-04-26 11:14:42

阅读数 83

评论数 0

原创 HTML5 成长之路 (三)表格、边框及合并单元格

Show me the code 将代码复制保存为.html结尾的文件并用浏览器产看结果。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"...

2019-04-25 22:23:10

阅读数 351

评论数 0

原创 HTML5 成长之路 (二)有序、无序、自定义列表

Show me the code 保存为.html的文件查看结果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <tit...

2019-04-25 21:59:34

阅读数 87

评论数 0

原创 HTML5 成长之路 (一)HTML基本语法

在Sublime中快速建立HTML5框架的快捷键 ! + Tab html:5 + Tab HTML5基本语法 请复制并保存为.html结尾的文件并用浏览器打开 <!DOCTYPE html> <html lang="en"> <hea...

2019-04-25 21:42:13

阅读数 57

评论数 0

原创 Mysql 成长之路(五)利用LIMIT限制输出结果

原数据 mysql> select * from simple_account; +----+-----------+-------+-----+---------+ | id | name | sex | age | money | +----+-----------+-...

2019-04-25 09:05:55

阅读数 125

评论数 0

原创 Mysql 成长之路(四)使用where按条件查询数据

原始表 mysql> select * from simple_account; +----+-----------+-------+-----+---------+ | id | name | sex | age | money | +----+-----------+-...

2019-04-24 22:00:53

阅读数 44

评论数 0

原创 Mysql 成长之路(三)表的查询与升序、降序排列结果

查看表原始数据 mysql> select * from simple_account; +----+-----------+-------+-----+---------+ | id | name | sex | age | money | +----+---------...

2019-04-24 21:30:46

阅读数 343

评论数 0

原创 Mysql 成长之路(二)创建数据库与创建表

启动Mysql 命令行开启Mysql服务并登陆Mysql: mysql.server start mysql -uroot -p你的密码 新建数据库 查看现有数据库并创建名为learn_mysql的数据库: 第1行 ——查看现有数据库 第12行 ——创建learn_mysql数据库 第15行 ...

2019-04-24 20:59:40

阅读数 29

评论数 0

原创 Mysql 成长之路(一)Mac利用Homebrew配置Mysql数据库

配置步骤 登陆Homebrew官网安装brew工具。 控制台运行brew install mysql。 控制台开启mysql服务mysql.server start。 控制台以root用户身份登陆数据库mysql -uroot -p。 关闭mysql,在mysql命令行键入qu...

2019-04-24 09:49:55

阅读数 26

评论数 0

原创 利用SVD进行图像压缩(附Python代码)

SVD图像压缩步骤 对于RGB图像来说,对应三色层,对每一个色层进行SVD分解,得到U,S,VU, S, VU,S,V矩阵,设利用前K大奇异值进行图像压缩,即有: result=∑i=13Ui[:,1:K]∗S[1:K,1:K]∗VT[1:K,:]result = \sum_{i = 1}^{3}...

2019-04-19 15:45:12

阅读数 586

评论数 3

原创 C++实现简易list链表(附C++代码)

说明 思路是采用环状链表结构,以一个空的节点做连接。 Show me the code #include <iostream> #include <string> using namespace std; // 定义节点类 template <class T&g...

2019-04-17 16:05:55

阅读数 301

评论数 0

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