自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yhc166188的博客

路虽远,行则将至;事虽难,做则必成!

  • 博客(467)
  • 资源 (12)
  • 收藏
  • 关注

原创 linux常用运维命令及性能调优整理

文章目录《vim编辑》《du,df,查看磁盘》《tar压缩,解压》

2019-12-26 17:20:35 730

原创 区块链技术汇总

文章目录闪电网络闪电网络《闪电网络》

2019-12-24 17:18:18 453

原创 数据结构与算法

文章目录常见排序算法手写快速排序(快速排序的基准)归并排序堆排序O(n^2)排序算法之 选择、插入、冒泡、希尔排序 及 优化排序算法总结 和 索引堆及优化(堆结构)二分查找 和 二分搜索树(插入、查找、深度优先遍历)链表给定一个链表,删除链表的倒数第N个节点,并且返回链表哈希表二叉树高级数据结构参考资料:《大话数据结构》、《数据结构浙大版》、《算法设计与分析》、《算法导论》、《剑指offer》、...

2019-12-22 21:51:05 228

原创 Linux操作系统

文章目录Linux基础命令Linux基础-系统编程(计算机操作系统原理相关)网络编程(计算机网络原理相关)内核部分Linux基础命令《Linux查看磁盘空间命令》Linux基础-系统编程(计算机操作系统原理相关)网络编程(计算机网络原理相关)内核部分...

2019-12-19 19:54:03 207

原创 Python 垃圾回收机制

众所周知,我们当代的计算机都是图灵机架构。图灵机架构的本质,就是一条无限长的纸带,对应着我们今天的存储器。在工程学的演化中,逐渐出现了寄存器、易失性存储器(内存)和永久性存储器(硬盘)等产品。其实,这本身来自一个矛盾:速度越快的存储器,单位价格也越昂贵。因此,妥善利用好每一寸高速存储器的空间,永远是系统设计的一个核心。回到 Python 应用层。我们知道,Python 程序在运行的时候,需要在内存中开辟出一块空间,用于存放运行时产生的临时变量;计算完成后,再将结果输出到永久性存储器中。如果数据量过大

2022-02-02 23:44:44 345

原创 python协程

协程是实现并发编程的一种方式。一说并发,你肯定想到了多线程 / 多进程模型,没错,多线程 / 多进程,正是解决并发问题的经典模型之一。最初的互联网世界,多线程 / 多进程在服务器并发中,起到举足轻重的作用。随着互联网的快速发展,你逐渐遇到了 C10K 瓶颈,也就是同时连接到服务器的客户达到了一万个。于是很多代码跑崩了,进程上下文切换占用了大量的资源,线程也顶不住如此巨大的压力,这时, NGINX 带着事件循环出来拯救世界了。如果将多进程 / 多线程类比为起源于唐朝的藩镇割据,那么事件循环,就是宋朝加

2022-02-02 21:43:50 465

原创 python装饰器

装饰器一直以来都是 Python 中很有用、很经典的一个 feature,在工程中的应用也十分广泛,比如日志、缓存等等的任务都会用到。然而,在平常工作生活中,我发现不少人,尤其是初学者,常常因为其相对复杂的表示,对装饰器望而生畏,认为它“too fancy to learn”,实际并不如此。今天这节课,我会以前面所讲的函数、闭包为切入点,引出装饰器的概念、表达和基本用法,最后,再通过实际工程中的例子,让你再次加深理解。接下来,让我们进入正文一起学习吧!函数 -> 装饰器函数核心回顾

2022-02-02 21:20:13 343

原创 npm install 项目时,报:gyp ERR! stack Error: `gyp` failed with exit code: 1

1. > npm install -g cnpm --registry=https://registry.npm.taobao.org 2. > cnpm install即可

2021-03-22 11:48:56 1210

原创 分布式系统简述

在分布式系统里,最重要的事情,就是如何选择或设计适合的分布式算法,来解决一致性和可用性相关的问题什么是分布式系统?分布式系统是若干独立计算机的集合,这计算机对用户来说就像单个相关系统。主要为了解决传统单体服务架构带来的各种问题,代码数量庞大,迭代测试维护困难,可能因为一处改动测试不到位造成整个服务瘫痪等问题,分布式系统就是将一个大的服务拆分成几十个甚至上百个微小的服务。如果把单体架构服务器比做篮子,那代码就是鸡蛋,不要让所有鸡蛋别装在一个篮子里,也方便大家分工开发,代码不在一个项目里,也不会冲

2020-09-15 14:09:19 595

原创 数据分片方式之哈希和一致性哈希介绍

数据分片方式脑图数据分布设计原则在分布式数据存储系统中,存储方案选型时,通常会考虑数据均匀、数据稳定和节点异构性这三个维度。数据均匀每个节点存储的数据相差不太大即可数据稳定当存储节点出现故障需要移除或者扩增时,数据按照分布规则得到的结果应该尽量保持稳定,不要出现大范围的数据迁移。数据稳定,就是尽可能只迁移移除节点上的数据到其他节点上,而不需要对大范围或所有数据进行迁移存储。当然,如果有扩展同类型节点,也是尽可能小范围迁移数据到扩展的节点上。具体的迁移方法,可以采用下文介绍的一

2020-09-15 13:53:57 1057 2

原创 最简单的椭圆曲线算法及加解密签名验签流程

一条椭圆曲线可以使用二元三次方程来表示,比如:y2 = x3 + ax + b下图展示了一些合法的椭圆曲线:椭圆曲线定义定义椭圆曲线上两点相加为:给定曲线两点P,Q,P+Q等于P和Q两点的连线与曲线交点沿X轴的对称点,如果P=Q,则P+P等于P在曲线上的切线与曲线交点沿X轴的对称点。下图演示了如何计算P+Q=R(P≠Q),将P和Q相连得到和曲线的另一个交点-R,再将-R沿X轴做对称得到最终结果R。如果P和Q相等,下图演示了如何计算P+Q=2P=R(P=Q),使用P点的切线得到红点

2020-09-15 12:43:07 2252

原创 什么是面向过程和面向对象

一、先来两小段通俗解释面向过程(Procedure Oriented 简称PO :如C语言):从名字可以看出它是注重过程的。当解决一个问题的时候,面向过程会把事情拆分成: 一个个函数和数据(用于方法的参数) 。然后按照一定的顺序,执行完这些方法(每个方法看作一个过程),等方法执行完了,事情就搞定了。面向对象(Object Oriented简称OO :如C++,JAVA等语言):看名字它是注重对象的。当解决一个问题的时候,面向对象会把事物抽象成对象的概念,就是说这个问题里面有哪些对象,然后给对

2020-09-12 10:27:13 966

转载 Nginx原理

什么是Nginx?Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器为什么要用Nginx?优点:跨平台、配置简单非阻塞、高并发连接:处理2-3万并发连接数,官方监测能支持5万并发内存消耗小:开启10个nginx才占150M内存成本低廉:开源内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到

2020-09-03 11:40:28 392

原创 分布式锁的三种实现方式

思维导图总览为什么要使用分布锁?维护数据的一致性在单机多线程环境中,我们经常遇到多个线程访问同一个共享资源(这里需要注意的是:在很多地方,这种资源会称为临界资源)的情况。为了维护数据的一致性,我们需要某种机制来保证只有满足某个条件的线程才能访问资源,不满足条件的线程只能等待,在下一轮竞争中重新满足条件时才能访问资源。这个机制指的是,为了实现分布式互斥,在某个地方做个标记,这个标记每个线程都能看 到,到标记不存在时可以设置该标记,当标记被设置后,其他线程只能等待拥有该标记的线程执..

2020-08-15 16:31:57 273

原创 p2p打洞技术原理

什么是打洞,为什么要打洞由于Internet的快速发展 IPV4(网际协议版本4)地址不够用,不能每个主机分到一个公网IP 所以使用NAT地址转换一般来说都是由私网内主机主动发起连接,数据包经过NAT地址转换后送给公网上的服务器,连接建立以后可双向传送数据,NAT设备允许私网内主机主动向公网内主机发送数据,但却禁止反方向的主动传递,但在一些特殊的场合需要不同私网内的主机进行互联(例如P2P软件、网络会议、视频传输等),TCP穿越NAT的问题必须解决。nat的几种类型现在基本使用这种,又分为对

2020-08-12 20:39:36 1292

原创 leveedb笔记

leveldb概念LevelDb是针对大规模Key/Value数据的单机存储库,能够处理十亿级别规模Key-Value型数据leveldb特性持久化存储到磁盘上。可以看log文件 key有序存储 支持数据压缩,可以看sstable文件的物理布局 写比读块,写入记录操作很简单,删除记录仅仅写入一个删除标记就算完事,但是读取记录比较复杂,需要在内存以及各个层级文件中依照新鲜程度依次查找,代价很高。也就是说,LevelDb比较适合写操作多于读操作的应用场合整个写入流程对于一个插入操作Put

2020-08-01 13:30:02 218 1

原创 RSA原理介绍

3.1 RSA原理介绍一、数学背景1.1互质从小学开始,我们就了解了什么是质数。互质是针对多个数字而言的,如果两个正整数,除了1以外,没有其他公因子,那么就称这两个数是互质关系(注意,这里并没有说这两个数一定是质数或有一个为质数。比如15跟4就是互质关系)。以下有一些关于质数与互质的性质:质数只能被1和它自身整除任意两个质数都是互质关系如果两个数之中,较大的那个数是质数,则两者构成互质关系如果两个数之中,较小的那个数是质数,且较大数不为较小数的整数倍,则两者构成互质关系1和任意一个自然

2020-07-15 22:35:24 1832

原创 计算机网络1

计算机网络重点在TCP/IP协议和HTTP协议。目录Chapter 1Chapter 2Chapter 3网络层(IP)传输层(TCP/UDP)应用层(HTTP)内容网络层(IP)待补充传输层(TCP/UDP)ISO七层模型中表示层和会话层功能是什么?表示层:图像、视频编码解,数据加密。会话层:建立会话,如session认...

2020-07-12 12:05:10 142

原创 海量数据处理

海量数据处理TOP N问题如何在海量数据中找出重复最多一个。通过hash映射为小文件通过hash_map统计各个小文件重读最多的并记录次数对每个小文件重复最多的进行建立大根堆上亿有重数据,统计最多前N个。内存存不下通过hash映射为小文件通过hash_map统计各个小文件重读最多的并记录次数对每个小文件重复最多的进行建立大根堆并重复N次取...

2020-07-12 12:05:10 83

原创 Linux内核

块I/O层1.I/O设备2.扇区(sector)3.块(block)4.buffer_head结构5.bio结构6.I/O请求队列与I/O请求7.调度算法1)Elevator(电梯)2)Deadline(截止日期)3)Anticipatory(预测)4)CFQ(完全公平队列)5)Noop6)查看与选择可用的调度算法块I/O层1.I/O设备设备类型大体...

2020-07-12 12:05:10 203

原创

插入节点删除堆顶建堆复杂度堆是一棵完全二叉树,使用数组实现堆,堆分为两种:最大堆:父节点大于任意子节点(因此堆顶为最大值)最小堆:父节点小于任意子节点(因此堆顶为最小值)对于第i个节点(i从0开始计数):父节点:(i-1)/2左子节点:2i+1右子节点:2i+2若包含sz个节点,则第一个非叶子节点的序号为(sz - 2) / 2插入节点插入节点时,进行下...

2020-07-12 12:05:10 93

原创

图的表示1.邻接矩阵2.邻接表图的遍历DFS(深度优先遍历)BFS(广度优先遍历)拓扑排序最小生成树Prim算法图可以用G=(V,E)来表示,每个图都包括一个顶点集合V和一个边集合E,顶点总数记为|V|,边总数记为|E|稀疏图:边数较少的图密集图:边数较多的图完全图:包含所有可能边的图带权图:边上标有权的图邻接点:一条边所连的两个顶点简单路...

2020-07-12 12:05:10 103

原创 自己动手写Docker

一.容器简介1.容器与虚拟机2.容器的用途3.Docker版本二.基础技术1.Namespace1.1 UTS Namespace1.2 IPC Namespace1.3 PID Namespace1.4 Mount Namespace1.5 User Namesapce1.6 Network Namespace2.Cgroups2.1 Cgroups中...

2020-07-12 12:05:10 1168

原创 数学智力题

内容源自《王道程序员求职宝典》一.数学基础进制及其应用1.找出有毒的酒 ????????2.状态切换 ????????3.工人与金条 ????4.确定灯泡的开关5.最后剩下的数概率1.中奖的概率2.两个实数和大于1的概率3.打开宝箱的概率4.随机选取m个查询 ????5.使用rand5实现rand7 ????排列与组合1.矩阵中A到B的走法 ????2.糖果...

2020-07-12 12:05:10 219

原创 网络编程

网络编程基础常见问题Socket API网络编程一般步骤?TCP:服务端:socket -> bind -> listen -> accept -> recv/send -> close。客户端:socket -> connect -> send/recv -> close。UDP:服务端:socket -...

2020-07-12 12:05:10 84

原创 排序

内排序1.插入排序(稳定)2.冒泡排序(稳定)3.选择排序(不稳定)4.shell排序(不稳定)5.快速排序(不稳定)6.归并排序(稳定)7.堆排序(不稳定)外排序1.多路归并稳定性:相同的元素在排序前和排序后的前后位置是否发生改变,没有改变则排序是稳定的,改变则排序是不稳定的 ——八大排序算法的稳定性1.插入排序逐个处理待排序的记录,每个记录与前面...

2020-07-12 12:05:10 123

原创 区块链汇总

区块链基础区块链定义区块链是一个分布式账本,一种通过去中心化,去信任的方式集体维护一个可靠数据库的技术方案《区块链详细定义》《区块链概述》区块链的特征开发,共识去中心去信任交易通明,双方匿名不可篡改,可追溯分类公有链,联盟链,私有链一、共识机制、共识算法1、什么是共识机制?我们都知道,区块链可以看作一本记录所有交易的分布式公开帐簿,区块链网络中的每个参与...

2020-07-12 12:05:10 364

原创 二叉树

两种特殊二叉树二叉树定理前中后序遍历递归版迭代版两种特殊二叉树满二叉树(下图左):除叶子节点外的所有分支节点都含有2个非空子节点的二叉树完全二叉树(下图右):除了最后一层,其余层都是“满”的,这样的二叉树是完全二叉树二叉树定理1)任意二叉树度数为2节点的个数等于叶节点个数减1当只有1个节点时,度为0。每派生出1度,就会多出1个节点。派生出的度和派生...

2020-07-12 12:05:10 120

原创 README

操作系统《操作系统——精髓与设计原理》《UNIX环境高级编程》计算机网络《计算机网络——自顶向下方法》《UNIX网络编程:卷1》数据结构与算法1.排序2.二叉树3.堆4.平衡查找树5.哈希表6.图算法题总结理论知识参考:《数据结构与算法分析》(C++版) Clifford A. Shaffer《算法》Robert Sedgewick & Ke...

2020-07-12 12:05:10 79

原创 C++

一.变量1)全局变量与static变量?(作用域、生存周期)2)static函数与普通函数的区别?3)两个文件中声明两个同名变量?(使用了与未使用extern?)4)全局数组和局部数组的初始化?5)指针和引用的区别?(代表意义、内存占用、初始化、指向是否可改、能否为空)6)C/C++中的强制转换7)如何修改const变量、const与volatile8)静态类型获取与动态类型获...

2020-07-12 12:05:10 107

原创 IO

一.I/O模型1.使用同步IO模型实现的Reactor模式的工作流程以epoll_wait为例主线程往epoll内核事件表中注册socket上的读就绪事件主线程调用epoll_wait等待socket上有数据可读当socket上有数据可读时,epoll_wait通知主线程。主线程将socket可读事件放入请求队列睡眠在请求队列上的某个工作线程被唤醒,它从socket读取数据,并处...

2020-07-12 12:05:10 76

原创 哈希表

槽总数的选择关键码范围较小关键码范围较大简单的哈希函数冲突解决策略开哈希法闭哈希法哈希:把关键码值映射到表中的位置来访问记录的过程哈希函数:将关键码值映射到位置的函数槽:哈希表中的一个位置冲突:不同的关键码经过哈希函数哈希后,映射到相同槽的情况探查序列:冲突解决策略的闭哈希方法中,如果基位置冲突,需要根据探查函数查找下一个空槽,这个过程产生的序列加上基位...

2020-07-12 12:05:10 226

原创 C++Primer

常见类型函数面向对象容器模板与泛型编程内存管理其它变量字符串与数组函数类重载运算与类型转换继承体系容器容器适配器泛型算法模板与泛型编程内存管理输入输出变量1.类型2.大小3.signed与unsigned4.类型转换5.初始化与赋值6.声明与定义7.作用域8.复合类型9.const10.constexpr与常量表达式1...

2020-07-12 12:05:10 1301

原创 网络

一.理论1.应用层1)http协议与TCP联系?2)http/1.0和http/1.1的区别(非持久连接与持久连接、范围请求(断点续传)、缓存处理、更多状态码)3)http1.1和http2.0的区别?(二进制分帧层、服务端推送、首部压缩)4)http的请求方法有哪些?GET和POST的区别(获取资源与传输数据、额外参数的位置、支持的编码)5)http的状态码6)http和ht...

2020-07-12 12:05:10 75 1

原创 Linux工具

Linux工具Linux下还是有很多超棒的开发工具的。在Linux日常使用中,最常用的命令自然是sudo, ls, cp, mv, cat等,但作为后台开发者,上述命令远远不够。从我的理解来看,合格的C/C++开发者至少需要从开发及调试工具、文件处理、性能分析、网络工具四个方面针对性使用一些开发工具。这里我罗列了一些,大部分都是开发中经常需要使用的命令,有些功能比较简单的命令我会给出一些基...

2020-07-12 12:05:10 262

原创 信号

1.信号1)2种信号处理方式这种方式已被废弃主要原因是在UNIX实现中,收到信号之后,会重置回默认的信号处理行为同时,该行为是不跨平台的 参数signo:信号func:信号处理函数(捕捉函数)SIG_IGN:忽略此信号SIG_DFL:默认处理动作默认处理通常是收到信号后终止进程SIGCHLD和SIGURG(带外数据到达时发送)的默认处理是忽略信号...

2020-07-12 12:05:10 72

原创 操作系统

操作系统面向进程和线程学习操作系统。目录Chapter 1Chapter 2Chapter 3Chapter 4Chapter 5进程线程模型进程间通信同步互斥机制存储管理网络I/O模型内容进程线程模型线程和进程的概念已经在操作系统书中被翻来覆去讲了很多遍。很多概念虽然都是套话,但没能理解透其中深意会导致很多内容理解不清晰。对于进程和线程的理...

2020-07-12 12:05:10 215

原创 真题摘录

目录Chapter 1Chapter 2Chapter 3TencentNetEase360Tencent模拟1Q1 :题目: 随着IP网络的发展,为了节省可分配的注册IP地址,有一些地址被拿出来用于私有IP地址,以下不属于私有IP地址范围的是: A. 10.6.207.84 B. 172.23.30.28 C. 172.32...

2020-07-12 12:05:10 356

原创 错题精解

错题精解牛客网基础题总结。目录Chapter 1Chapter 2编程语言(C++)其他内容编程语言(C++)Q 1 :题目: 以下代码: class ClassA{ public: virtual ~ClassA(){}; virtual void FunctionA(){}; };...

2020-07-12 12:05:10 630

原创 编程语言C++

编程语言(C/C++)都是语言,为什么英语比C++难这么多呢?目录Chapter 1Chapter 2Chapter 3Chapter 4编程基础面向对象基础标准模板库编译及调试内容编程基础C/C++的内容又多又杂,常常看到有人罗列相关书单,觉得毫无意义,我不相信他们真的完全掌握了其中任何一本。学习任何东西,首先要掌握基本概念,基础不牢地动山摇...

2020-07-12 12:05:10 246

secureCRT免安装版.zip

secureCRT免安装版.zip

2021-04-10

Visual Assist 西红柿完美支持2010-2017

Visual+Assist+X+通用破解补丁2017,亲测可用,带有破解补丁(完美支持visula stuido 2017及以下版本)

2018-06-05

Visual+Assist+X+通用破解补丁2017

Visual+Assist+X+通用破解补丁2017,亲测可用,带有破解补丁(完美支持visula stuido 2015及以下版本)

2018-05-29

语音播报demo

利用百度语音技术把文字转换成语音,在从内存中读取,播放音乐。是源码,有依懒项需要设置一下,在win32目录下有编译好的程序可以直接运行

2018-02-07

Notepad FTP插件下载(NppFTP)

NppFTP是Notepad++上的一款小插件,它能轻松实现FTP、FTPES和SFTP通信。下载该压缩包,解压完成后,将bin目录下的“NppFTP.dll”文件放notepad++的plugin目录下 重新启动notepad++即安装成功

2018-02-01

dependencies2015库

vs依赖库下载!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2017-11-29

qt 播放音乐

qt播放音乐 qmediaplaylist 循环暂停 快进快退等播放。。

2017-11-28

获取电脑进程列表,显示各个进程的CPU,内存,上行速度,下载速度

获取电脑进程列表,显示各个进程的CPU,内存,上行速度,下载速度。以及通过pid杀死进程的方法。使用winpcap库抓取各个进程的网络速率。

2017-09-20

通过进程id获取主窗口句柄及主窗口标题

通过进程id获取到所在进程的主窗口的句柄,及通过该主窗口句柄获取当前主窗口的标题,进程名;这是一个demo例程,仅供参考

2017-09-01

( YUV420(YV12)与YUY2(YUV422,YUYV)格式互转

做美颜要进行格式转换,就做了两种格式的互转,( YUV420(YV12)与YUY2(YUV422,YUYV)格式互转

2017-08-02

YUY420(YV12)转YUY2(YUV420),读取yuv文件转成YUY2文件

从磁盘中读取YUY420(YV12)文件解析处理按YUY2(YUV420)格式写入磁盘,利用格式检查工具可以进行检查

2017-08-02

空空如也

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

TA关注的人

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