自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用telnet命令调试dubbo接口

1.首先查看是否安装telnet,命令 yum list installed | grep telnet2.确认已安装后,命令:telnet ip 端口号(这里的ip地址是运行服务的机器ip,端口号是dubbo服务端口号,一般情况下端口号为默认端口号 20880)3.查看有哪些接口类:ls4.查看接口下的方法:ls -l 接口名5.以json的格式传递参数,调用接口方法...

2020-03-30 21:01:08 1270 1

原创 spring实操

1.首先创建一个maven工程(使用idea这里就不做演示了)2. 创建Book类与Author类·Book 类public class Book { private String bookName; private String author; public Book(){ System.out.println("This is Book con...

2020-03-01 20:56:23 279 1

原创 部署项目提示jdk版本太低

部署项目时,在编译期提示jdk版本太低为jdk6需要升级。首先查看机器上安装的jdk版本,命令: java -version;发现机器上jdk版本是jdk7而非jdk6;检查pom引包文件,发现pom中配置指定编译时使用jdk6;修改 与 的版本号为1.7 ,问题解决...

2020-02-25 14:44:52 668

原创 Shell版本的进度条

简单的进度条#!/bin/bashi=0 #定义变量i并初始化为0bar='' #定义变量bar 初始化为空串lable=('|' '/' '-' '\') #定义一个数组while [ $i -le 100 ] #i从0到100循环do printf "[\e[43;46;1m%-100s\e[0m][%d%%...

2018-07-10 17:24:17 472

原创 Shell脚本的语法应用

Shell脚本中的语法与C语言类似一、shell的一些基本了解1.shell脚本的后缀名为“ .sh” 2.shell文本以 #!/bin/bash 开头。#!是一个约定的标记,它告诉这个系统这个脚本需要什么解释器来执行。 3.shell文本通用的两种执行方式: (1) /bin/bash test.sh (2)对test.sh增加可执行权限 chmod u+x test.sh ,...

2018-07-10 16:46:42 273

原创 2018-5-31 TCP、UDP协议对比

1.可靠性: (1)UDP协议:不可靠,没有确认机制,没有重传机制,如果因为网络故障该段无法发送到对方,UDP协议层也不会给应用层返回任何错误信息;(2)TCP协议:通过校验和、序列号(按序到达)、确认应答、超时重传、连接管理、流量控制、拥塞控制保证可靠性;TCP协议通过滑动窗口、快重传、延迟应答、捎带应答等机制来提高性能。2.面向对象: (1)UDP协议:UDP是无连接的,知道对端的...

2018-06-09 22:21:41 257

原创 UDP网络协议

1.UDP协议段 (1)16位UDP长度: 表示整个数据报(UDP首部+UDP数据)的最大长度; (2)16位检验和: 如果检验和出错,直接丢弃该包;2.UDP的特点 UDP传输过程类似于寄信. (1)无连接:直到对端的IP和端口号就可以直接传输,不需要建立连接。 (2)不可靠:没有确认机制,没有重传机制,如果因为网络故障该段无法发到对方,UDP协议层也不会给应用层返...

2018-05-30 20:24:22 535

原创 TCP网络协议

TCP全称为“传输控制协议”。TCP是面向连接,保证可靠性,面向字节流的一种网络传输协议。TCP协议段格式 1.源 / 目的 端口号: 表示数据是从哪个进程来,到哪个进程去。 2.32位序号与确认序号: TCP会话的每一端都包含一个32位(bit)的序列号,该序列号被用来跟踪该端发送的数据量。每一个包中都包含序列号,在接收端则通过确认号用来通知发送端数据成功接收。 3.4位T...

2018-05-30 18:16:11 439

原创 网络套接字的应用

在介绍套接字前,我们需要了解什么是IP地址,什么是端口号port:1.IP地址 ip协议有两个版本,IPv4 和 IPv6 (一般情况下使用IPv4); IPv4协议占32个bit;IPv6占128个bit是IPv4的4倍; 1) IP地址是在IP协议中用来标识网络中不同主机的地址; 2) 对于IPv4来说,IP地址是一个4字节,32位的整数...

2018-05-29 17:03:57 2001

原创 信号量的应用

信号量 1、信号量和P、V原语信号量和P、V原语由迪杰斯特拉提出互斥:P、V在同一个进程中 同步:P、V在不同进程中信号量值含义: (1)S>0: S表示可用资源的个数。 (2)S=0:表示无可用资源,无等待进程。 (3)S<0: |S|表示等待队列中进程个数。P原语:P(s){ s.value = s.value--; if(...

2018-05-04 21:49:22 780

原创 读者写者模型

读者写者模型读者与写者之间的关系: 读者与读者:无关系 写者与写者:互斥 读者与写者:互斥注:写独占,读共享,写锁优先级高。读写锁接口://1.初始化int pthread_rwlock_init(pthread_rwlock_t *restrict rwlock,const pthread_rwlockattr_t *restrict attr);//2.销毁int...

2018-05-01 23:23:18 213

原创 生产者消费者模型

生产者消费者模型一个交易场所,两个对象,三种关系。消费者与消费者:互斥 生产者与生产者:互斥 生产者与消费者:同步且互斥下面是一个三个生产者与三个消费者的模型:#include<stdio.h>#include<pthread.h>#include<unistd.h>#include<stdlib.h>#define C...

2018-05-01 22:53:10 153

原创 【Linux】线程同步与互斥

线程同步与互斥1、mutex(互斥量)(1)初始化互斥量第一种方法:静态分配 pthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER第二种方法 :动态分配 int pthread_mutex_init(pthread_mutex_t* restrict mutex,const pthread_mutexattr_t *restrict a...

2018-05-01 22:42:33 163

原创 【Linux】操作系统之线程

进程博客:https://blog.csdn.net/lz201788/article/details/79679380线程在一个程序里的一个执行路线就叫做线程(thread)。更准确的定义是:线程是一个进程内部的控制序列。一切进程至少都有一个执行线程。进程与线程: 1.进程是资源竞争的基本单位。 2.线程是程序执行的最小单位。 3.线程共享进程数据,但也拥有自己的一部分数据。 ...

2018-05-01 22:05:17 166

原创 守护进程

守护进程1、守护进程也称精灵进程(daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。Linux的大多数服务器就是用守护进程实现的。比如,ftp服务器,ssh服务器,Web服务器httpd等。同时,守护进程完成许多系统任务,比如,作业规划进程crond等。2、 Linux系统启动时会启动很多系统服务进程,这些系统服务进程没有控制终端...

2018-04-26 22:28:07 261

原创 进程间关系

1、进程组 进程组是一个或多进程的集合。通常,它们同一作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组id。每个进程都可以有一个组长进程。组长进程的标识是,其进程组id等于其进程id。组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要在某个进程组中一个进程存在,则该进程组就存在,这与其组长进程是否终止无关。 ‘&’ :表示将进程组放在后台执行...

2018-04-26 12:05:37 394

原创 【Linux】gdb 调试多进程

首先写一个两个进程运行的程序:#include<stdio.h>#include<pthread.h>#include<errno.h>void A_process(){ int i=0; while(1) { sleep(1); printf("father:%d i=%d\n",ge...

2018-04-24 23:36:39 201

原创 【Linux】信号捕捉

1、内核如何实现信号的捕捉:(1)如果信号的处理动作是用户自定义函数,在信号递达时就调用这个函数,这称为信号捕捉。(2)范例: 用户程序注册了SIGQUIT信号的处理函数sighandler。当前正在执行main函数,这时发生中断或异常切换到内核态。在中断处理完毕后要返回用户态的main函数之前检查到有信号SIGQUIT递达。内核决定返回用户态后不是恢复main函数的上下...

2018-04-24 21:41:09 364

原创 【数据结构】图的模拟实现(临接矩阵法)

什么是图:图是由顶点集合及顶点间的关系组成的一种数据结构:G = (V , E), 其中顶点集合V={ x| x属于某个数据对象集} 是有穷非空集合;E = {(x,y) | x,y属于V } 或者 E = { (x , y ) | x,y属于V && Path( x , y) }是顶点间关系的有穷集合,也叫做边的集合。(x, y)表示 x 到 y 的一条双向通路,即(x , ...

2018-04-20 23:26:20 740

原创 【Linux】进程信号

一、首先,用 kill -l 命令可以查看系统定义的信号列表: 每个信号都有一个编号和一个宏定义名称,这些宏定义可以在 signal.h 中查看,例如:#define SIGINT 2 。编号34以上的信号为实时信号。二、信号常见的三种处理方式:(1)忽略此信号。(SIG_IGN) (2)执行信号的默认处理动作。(SIG_DFL) (3)提供一个信号处理函数,捕捉信号进行自定义...

2018-04-16 23:21:56 203

原创 一个简易的shell

shell本质上就是将进程程序替换替换原理:用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个程序。当进程调用一种exec函数时,该进程的用户空间代码和数据完全被新程序替换,从新程序的启动例程开始执行。调用exec并不创建新进程,所以调用exec前后该进程的id并未改变。 替换函数:有六种以exec开头的...

2018-04-12 22:26:27 801

原创 【Linux】进程控制

一、进程的创建 有两个函数(fork / vfork)可以在已存在的进程中创建一个新进程。新进程为子进程,原来的进程为父进程。子进程就是将父进程万全的拷贝了一份。1.fork#include<unistd.h>pid_t fork( );返回值:子进程返回0,父进程返回子进程的进程id,出错返回-1。fork函数对父进程的拷贝是深拷贝(写实拷贝),有自己独立的空...

2018-04-12 18:51:28 186

原创 【数据结构】并查集

并查集: 通过数组来实现的一种将有关系的节点都联系起来的一种搜索结构。 代码实现:#include<iostream>#include<vector>using namespace std;class UnionFindSet{public: UnionFindSet(size_t size) :_n(size) ...

2018-04-12 12:31:39 219

原创 【C++】打印日历

在我们的手机或电脑上都有日历,如下图: 如上图的样式我们用代码也可实现,在Linux操作系统中就有这样的命令:cal 一、代码实现:1.首先,1990年1月1号是星期一,我们选这一天做标尺。2.打印指定年份对应的指定月份的日历,我们要先判断这一年是闰年还是平年,然后判断月份,最后求出指定年份的指定月份距1990年1月1号总共多少天。3.根据总天数确定月份,然后打印这...

2018-04-10 14:55:51 15098 4

原创 【Linux】makefile文件

makefile介绍:【1】 make命令执行时,需要一个 makefile 文件,以告诉make命令如何去编译和链接程序。【2】这里通过一个例子让我们更直观的去了解它的编写规则,我们的规则是:1)如果这个工程没有编译过,那么我们的所有c文件都要编译并被链接。 2)如果这个工程的某几个c文件被修改,那么我们只编译被修改的c文件,并链接目标程序。 3)如果这个工程的头文件被改变了,那...

2018-04-07 22:11:16 229

原创 【Linux】消息队列

一、消息队列1.消息队列提供了一个从一个进程向另外一个进程发送一块数据的方法。 2.每个数据块都被认为是有一个类型,接受者进程的数据块可以有不同的类型值。 3.消息队列也有管道一样的不足,就是每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总的字节数是有上限的(MSGMNB),系统上消息队列的总数也有一个上限(MSGMNI)。 IPC对象数据结构: 消息队列结构...

2018-04-06 22:07:59 267

原创 【数据结构】哈希表(2)

哈希表的讲解: https://blog.csdn.net/lz201788/article/details/79735508以下是哈希表的另外的实现方式:【1.】(不使用vector)【HashTable2.h】#pragma once#include<iostream>#include<string>using namespace std;#...

2018-03-31 23:07:06 179

原创 【Linux】安装有趣的命令 ”sl“(跑火车)

【第一步】:检查网络可以ping通,说明网络连接ok。 【第二步】:更新yum源更新完成:【第三步】:尝试安装sl报错:使用yum命令安装sl插件时,提示未发现sl这个包。解析:执行yum命令时会去centos镜像查找sl包,但是镜像中没有sl包,所以要安装额外包,需要安装epel-release-6-8.noarch.rpm【第四步】:安装wget命令为wget http://dl.fedora...

2018-03-31 13:38:21 36972 13

原创 【Linux】C语言实现进程间通信

首先创建一个server.c文件与client.c文件,使用Makefile将这两个文件管理起来。 Makefile文件:.PHONY:allall:server clientserver:server.c gcc $^ -o $@client:client.c gcc $^ -o [email protected]:cleanclean: rm server ...

2018-03-31 12:59:49 2031

原创 【Linux】管道

【什么是管道】 (1)管道是Unix中最古老进程间通信的形式 (2)我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”。 【匿名管道】( pipe ) 管道是IPC最基本的一种实现机制。我们都知道在Linux下“一切皆文件”,其实这里的管道就是一个文件。管道实现进程通信就是让两个进程都能访问该文件。 管道的特征: ①只提供单向通信,也就是说,两个进程都能访问这个文件,...

2018-03-30 12:54:13 721

原创 【数据结构】红黑树

一、红黑树 红黑树是一棵二叉搜索树,它在每个节点上增加了一个存储位来表示结点的颜色,可以是 red 或者 black ,通过对任何一条从根节点到叶子节点简单路径上的颜色来约束,红黑树保证最长路径不超过最短路径的两倍,因而近似平衡,而且在实际应用中发现红黑树性能确实比 AVL 树 性能高。 AVL树实现代码: https://blog.csdn.net/lz201788/article...

2018-03-28 23:15:56 218

原创 【数据结构】哈希表(线性探测法)

哈希表是一种搜索结构,当数据量大时,哈希搜索的效率高,平均时间复杂度O(1)。【哈希查找】: (1)在插入时,根据待插入元素的关键码,以此函数计算出该元素的存储位置并按此位置进行存放。 (2)在搜索时,对元素的关键码进行同样的计算,把求得的函数值当作元素的存储位置,在结构中按此位置取元素比较,若关键码相等,则搜索成功。 该方式即散列方法(Hash Method),在散列方法中使用的转换函数...

2018-03-28 22:41:15 68321 11

原创 【Linux】了解进程

【进程基本概念: (1)课本概念:程序的一个执行实例,正在执行的程序等。 (2)内核观点:担当分配系统资源(CPU时间、内存)的实体。操作系统在管理进程时,先将其描述起来,再对其组织管理。 【描述进程-PCB: (1)进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。 (2)课本上称之为PCB(process control block)(进程控制块),Linu...

2018-03-24 23:48:07 210

原创 基础I/O

基础I/O,也就是输入/输出。下面介绍一些常用的文件操作函数。 1. fopen( ) / fclose( ) 这两个函数每次都是结伴出现,用fopen打开文件,用close关闭文件。 在结尾位置将文件关闭 fclose(fp); #include<stdio.h>#include<string.h>int main(){

2018-03-22 21:36:15 468

原创 【数据结构】对B-树、B+树与B*树的简单了解

一、【B-树】 一棵M阶(M&gt;2)的B树,是一棵平衡的M路平衡搜索树,可以是空树或者满足以下性质: 1.根节点至少有两个孩子。 2.每个非根节点至少有M/2(上取整)个孩子,至多有M个孩子。 3.每个非根节点至少有M/2-1(上取整)个关键字,至多有M-1个关键字,并且以升序排列。 4.key[i]和key[i+1]之间的孩子节点的值介于ke...

2018-03-20 17:18:04 1042

原创 【数据结构】B树的创建

B树也是一种搜索树,二叉搜索树、红黑树、都是动态查找树,典型的二叉搜索结构,查找的时间复杂度和树的高度相关O(log2N)。这些二叉搜索结构有一个共同的缺陷:数据量大,树的高度太高,增大访问磁盘的次数,从而效率低下。想要加速对数据的访问速度: 1.提高I/O的时间 2.降低树的高度——平衡多叉树B树的定义 一棵M阶(M>2)的B树,是一棵平衡的M路平衡搜索树,可以是空树或者满足以下性质:

2018-03-19 21:16:30 11865 1

原创 【数据结构】排序算法

大家熟知的排序方式有冒泡排序、选择排序,这两种排序方式在处理少量数据的排序时比较方便,但当数据量变大时效率明显变低。在此我们引入了新的排序方式比如:插入排序、归并排序、希尔排序、堆排序、快排。1. 插入排序 直接插入排序:适用于数据量少且非常接近有序。(稳定) (1)时间复杂度:最优—–已序—-O(N) / 最差—-逆序—-O(N^2)

2018-03-08 12:53:56 167 1

原创 【数据结构】搜索结构之AVL树

AVL树———又称平衡二叉树 二插搜索树虽然可以缩短查找效率,但如果数据有序或接近有序二插搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。AVL树概念: 平衡化旋转 如果在一棵原本是平衡的二插搜索树中插入一个新节点,可能造成不平衡,此时必须调整输的结构,使之平衡化。1.左单旋: 插入点位于ptr的右子结点的右子树—-右右 2.右单旋: 插入点位于pt...

2018-03-05 22:06:38 259

原创 【数据结构】线索化二叉树

二叉树虽然是非线性结构,但二叉树的遍历却为二叉树的结点集导出了一个线性序列。对于前、中、后序遍历,出了相应序列的第一个节点和最后一个节点,二叉树的遍历序列中每个结点都有一个前驱和后继结点,但在二叉树中,无法很快的找出按照某种遍历序列该结点的前驱和后继。 普通的二叉树可能存在以下问题:递归遍历有可能导致栈溢出非递归版本有可能降低程序效率想要找到在某种遍历形势下某个结点的前驱或后继比较...

2018-03-05 21:31:55 250 1

原创 【数据结构】二叉树

一、什么是二叉树            二叉树 (binary tree) 是另一种树型结构,它的特点是每个结点至多只有二棵子 树 (即二叉树中不存在度大于 2的结点 ),并且,二叉树的子树有左右之分,其次序不能任意颠倒 。 二叉树是一种数据结构 ,是一对多的关系。二、二叉树的创建      第一步:想要构造一颗二叉树首先要创建二叉树的节点,然后将节点按照二叉树的规则连接起来就构成了一颗二叉树。二...

2017-12-02 15:13:25 663

空空如也

空空如也

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

TA关注的人

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