自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 操作系统之死锁处理策略

哲学家进程问题中,都在等待另外的哲学家放弃另一只筷子,造成了都不能用餐的现象,互相等待对方的资源。

2023-05-02 18:12:45 1158

原创 操作系统之进程同异步、互斥

1、由迪杰斯特拉提出信号量机制;2、信号量是一种变量,表示系统中的一种变量;3、使用一对原语来对信号量进行操作,wait(s)原语和signal(s)原语,可以把原语比做一个函数,括号里面的s其实就是函数调用的时候传入的一个参数;一般把原语简称为 P,V操作;

2023-05-02 18:10:46 2347

原创 操作系统之内存管理

虚拟内存最大容量是计算机地址结构确定的虚拟内存的实际容量=min(内存和外存容量之和,CPU寻址范围)eg:某计算机地址结构为32位,按字节编址,内存大小为512MB,外存大小为2GB.则虚拟内存的最大容量为 2^32B=4GB虚拟内存的实际容量=min(2^32B,512MB+2GB)=2GB+512MB多次性:无需在作业运行时一次性全部装入内存,而是允许被分成多次调用内存对换性:在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入换出。

2023-04-30 22:37:24 1578

原创 操作系统的进程调度

一、操作系统的调度时机1、什么时候进行进程调度?主动放弃(进程正常终止、运行过程中发生异常而终止、进程主动请求阻塞)被动放弃(分给进程的时间片用完、有更紧急的事需要处理、有更高优先级的进程进入就绪队列)2、什么时候不能进行进程调度?(1)处理中断;(2)访问临界区(临界区:在操作系统内核中,临界区是指一个程序段,它需要独占地访问某个共享资源,例如硬件设备或共享数据结构,以避免并发访问所导致的不一致性和错误。当一个进程进入临界区时,其他进程必须等待该进程退出临界区才能访问共享资源);

2023-04-30 17:51:04 2009

原创 操作系统之线程

最开始的并发,只能更具切换进程的方式去交替执行进程来宏观上并发,但是切换进程需要切换执行进程的环境,有很大的系统开销,所以产生了线程,让其可以不用频繁的切换进程,使得线程成为CPU执行的基本的单位。线程分为用户级线程(UTL)和内核级线程(KTL),用户级线程就是用户视角能看到的线程,内核级线程就是操作系统视角能看到的线程;同一进程中的线程切换,不会引起进程切换。不同进程中的线程切换,会引起进程切换。同一进程的不同线程间共享进程的资源。切换同进程内的线程,系统开销很小。n个ULT映射到n个KLT。

2023-04-30 17:18:40 1150

原创 操作系统进程概述、通信

原语的执行具有原子性,即执行过程只能一气呵成,所以有开中断和关中断,在开中断和关中断之间,如果存在其他的中断信号,不会去执行其他的中断信号;引起进程切换的事件:当前进程事件片到、有更高优先级的进程到达、当前进程主动阻塞、当前进程终止。就绪状态:已经具备运行条件,但是没有空闲的CPU,暂时不能运行(CPUX,其它资源√)引起进程阻塞的事件:需要等待系统分配某种资源、需要等待相互合作的其他进程完成工作。(1)直接传递:进程对进程,直接标注PID指出发送给那个进程;1、进程控制就是实现进程的状态转换;

2023-04-30 17:05:26 837

原创 内核中断体系

由于程序的运行,操作系统会将CPU的主动权让给应用程序,当操作系统想收回CPU的主动权的时候,就需要使用中断信号来将运行的应用程序中断,使其从用户态转换为内核态;不同的中断信号,需要不同的中断处理程序来处理,当CPU检测到中断信号的时候,去查询中断向量表,找到相对应的中断处理程序来处理中断。(1)陷入:应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令,陷入指令,该指令会引起内部中断信号;(2)故障:由错误的条件引起的,可能被内核程序修复,内核程序修复后会将CPU的使用权还给操作系统;

2023-04-30 14:23:25 194

原创 操作系统概述

一、简单描述1、系统资源的管理者;2、最接近硬件的一层软件;3、向上层提供方便容易使用的服务;二、提供的功能1、处理机管理;2、储存器管理;3、文件管理;4、设备管理;举例说明:打开QQ的时候,需要找到安装的位置(文件管理),双击打开qq的时候需要将qq放入到内存中去(储存器管理),qq程序被处理机处理,开qq视频的时候需要获取摄像头的权限(设备管理);三、封装思想。

2023-04-29 23:52:27 1717

原创 前端控件相关问题

前端控件相关问题一、select框动态加载后只能使用一次change函数解决办法:(不能直接使用change函数) $("#document").on('click','#id',function (){ //执行方法 }二、Table框出现display后乱序问题解决办法:display属性block换成table-row $("tr[name=hpshow]").css("display","table-row")后续继续更新...

2021-09-27 00:30:36 95

原创 go语言网页的模板技术

go语言网页的模板技术一、循环{{range $i, $v := $.AtkTeam}}{{$v}}{{end}}{{range $i, $v := . }}{{$v}}{{end}}注意传值的时候需要结构体字段大写,设置为公有字段二、判断{{if eq .var1 .var2}} {{end}} //等于{{if ne .var1 .var2}} {{end}} //不等于{{if lt .var1 .var2}} {{end}} //小于{{if gt .va

2021-09-26 00:54:00 204

原创 SSH连接失败,远程登录错误解决办法

Linux远程登录错误解决办法一、远程连接1、ssh连接出现了错误2、需要删除known_hosts(在/home/ubuntu/.ssh)ssh-keygen -R IP地址 //删除相关的信息3、Rsync传文件失败问题解决:忘记加-R如果看完对自己有所帮助,请点赞支持...

2021-09-25 22:22:54 1200

原创 开发环境配置

开发环境配置一、ubuntu的安装1、更换apt-get的源为阿里云源(1)复制原文件备份sudo cp /etc/apt/source.list /etc/apt/source.list.bak(2)将原来的列表删除,添加如下内容sudo vim /etc/apt/source.list(3)添加如下内容#deb包deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiversedeb h

2021-09-13 22:57:45 88

原创 NAT与桥连接的区别

NAT与桥连接的区别NAT相当于是局域网中的局域网,把192.168.21.1当作外网ip,重新划分了一个网关(192.168.33.x)网桥只是把网络桥接起来,还是原来的网关(192.168.21.x),虚拟机相当于和宿主机是平行关系...

2021-09-13 21:20:24 190

原创 validator库的使用

validator库的使用

2021-07-29 21:38:54 262

原创 pprof项目优化之性能优化

pprof项目优化之性能优化

2021-07-29 20:40:08 101

原创 常用限流策略之漏桶和令牌桶

常用限流策略之漏桶和令牌桶

2021-07-28 20:43:29 360

原创 WRK的HTTP服务压力测试

HTTP服务压力测试

2021-07-28 00:29:53 252

原创 单元测试学习

单元测试学习

2021-07-27 23:14:27 67

原创 Swagger的生成接口文档

Swagger的生成接口文档一、背景前后端之间约定好使用Restful风格的API进行数据通信,此时如果我们能够提供一份清晰明了的接口文档,能够极大的提高效率二、安装1、2、使用三步骤(1)按照swagger要求给接口代码添加声明式注释,具体参照声明式注释格式;(2)使用swag工具扫描代码自动生成API接口文档数据;(3)使用gin-swagger渲染在线接口文档页面;...

2021-07-27 20:23:38 860

原创 Go-Redis的使用方法

Go-Redis的使用方法一、

2021-07-21 18:50:28 1875

原创 Air监听代码神器

Air监听代码神器一、作用在使用Go语言的gin框架在本地做开发调试的时候,经常需要在变更代码之后频繁的按下Ctrl+C停止程序并重新编译再执行,这样就不是很方便。二、安装AirGogo get -u github.com/cosmtrek/airMaccurl -fLo air https://git.io/darwin_airLinuxcurl -fLo air https://git.io/linux_airWindowscurl -fLo air.exe https://

2021-07-15 23:42:14 273

原创 Makefile介绍

Makefile介绍一、作用借助Makefile我们在编译过程中不再需要每次手动输入编译的命令和编译的参数,可以极大简化项目编译过程,比如go build等等编译命令。二、Make工具make是一个构建自动化工具,会在当前目录下寻找Makefile或makefile文件。如果存在相应的文件,它就会依据其中定义好的规则完成构建任务。三、MakeFile结构[target] : [prerequisites]<tab>[command]targets:规则的目标prerequis

2021-07-15 23:12:38 169

原创 Gin实现论坛(一)

Gin实现投票论坛本项目使用CLD的分层一、用户建表二、分布式ID生成器1、雪花算法go的实现(1)第一种轻量雪花算法实现(2)索尼公司雪花算法的实现三、注册业务的逻辑路由根据地址->Controller控制器(进行参数校验、跳转业务处理(跳转到logic层)、返回响应),同理在处理logic层的时候可能需要dao层的mysql数据注册流程的实现:1、router包跳转路由;2、controller包获取参数进行数据验证(validator库进行校验,翻译器

2021-07-15 22:54:13 487 1

原创 GoWeb脚手架的搭建

GoWeb脚手架的搭建以下内容搭建一个Go Web较为通用的脚手架模板一、加载配置文件在init中使用Viper加载配置文件(包含mysql,redis,app,log等配置),最好使用结构体,这样容易交接二、初始化配置文件初始化日志log(zap日志系统)、初始化mysql配置,初始化redis操作三、注册路由将Gin中注册路由信息,返回r四、优雅关机与平滑重启...

2021-07-13 20:29:00 422 1

原创 Linux下安装redis

Linux下安装redis一、redis相关资源:Redis 官网:https://redis.io/Redis 在线测试:http://try.redis.io/Redis菜鸟教程: https://www.runoob.com/redis/redis-tutorial.html二、安装过程1、输入命令下载redis sudo apt-get install redis-server //下载redis ps -aux|grep redis //查看redis是否安装成功2、

2021-07-12 15:41:56 66

原创 Gin框架如何优雅的关机和重启

Gin框架如何优雅的关机和重启一、为什么需要优雅的关机

2021-07-08 22:06:13 996

原创 Linux下安装mysql

Linux下安装mysql一、官网下载mysql安装包

2021-07-08 21:10:41 82

原创 Viper的使用方法

Viper的使用方法

2021-07-08 16:53:11 3564

原创 Linux环境下安装Git

Linux环境下安装Git一、官网查看最新版本https://github.com/git/git/releases二、步骤1、下载tar压缩包或者直接命令下载wget https://github.com/git/git/archive/v2.17.0.tar.gz2、解压下载的git压缩包tar -zxvf v2.17.0.tar.gz3、安装源码所需依赖yum install curl-devel expat-devel gettext-devel openssl-devel

2021-07-08 10:12:01 404

原创 Go语言的Zap日志库

Go语言的Zap日志库一、为什么使用?1、对于go内置的log库,只有print级别,不存在多级别的日志,并且错误日志Fatal和panic也是调用了os.Exit(0)会直接退出程序,所以需要使用Zap的日志库;2、Uber-go zap提供了结构化日志记录和Printf风格的日志记录;二、使用1、定义...

2021-07-08 02:20:40 634

原创 Gin框架源码解析

Gin框架源码解析一、Radix树的介绍1、基本概念:基数树又被称为PAT树,是一种更省空间的前缀树,对于基数树的每个节点,如果节点是唯一的子树的话,就和父节点合并,比如如下的字母,都有r开头,所以r为总父节点,然后依次排序下去。应用:关键词猜想(输入字就联想),屏蔽一些关键词二、Gin中请求处理路由路径的实现根据Get方法的路由,按照PAT树的规则来寻找路径由此可以看处Gin就是一棵树,通过PAT树一层一层的寻找到三、请求方法树底层解析定义了容量为9的切片,里面储存http获取请求的

2021-07-06 00:07:42 342

原创 Beego开发博客

Beego开发博客一、bee工具的使用1、安装bee工具go get -u github.com/beego/bee/v2//安装完成后直接在终端输入bee获取环境安装完之后,bee 可执行文件默认存放在 $GOPATH/bin 里面,所以您需要把 $GOPATH/bin 添加到您的环境变量中,才可以进行下一步。2、new命令new 命令是新建一个 Web 项目,我们在命令行下执行 bee new <项目名> 就可以创建一个新的项目。但是注意该命令必须在 $GOPATH/src

2021-07-05 20:55:28 483 1

原创 Linux下docker的安装

Linux下docker的安装一、一键安装1、解开缓存锁sudo rm /var/lib/dpkg/lock-frontend参考文章:https://www.jianshu.com/p/2cf59e3d99fc2、使用官方一键安装curl -sSL https://get.daocloud.io/docker | sh后续继续更新相关操作...

2021-06-20 11:45:58 78

原创 Linux环境go环境搭建与安装

Linux环境go环境搭建与安装一、Ubant与Vm官网下载1、Ubantu下载网址https://releases.ubuntu.com/20.04/2、版本的区别Desktop image,Server install CD,Alternate install CD分别对应:桌面版,服务器版,订制版二、ubuntu的安装1、参考网址:https://www.linuxidc.com/Linux/2020-03/162547.htm2、安装好之后修改分辨率就可以全屏显示;三、golan

2021-06-20 11:19:24 188

原创 Vue学习(三)

Vue学习(三)一、脚手架搭建vue二、路由设置三、子路由四、Vue传参1、URL传参发送接收2、声明式传参四、Vuex1、store方法,储存现有状态2、模块化modoule

2021-06-18 23:58:15 53

原创 Vue学习(二)

Vue学习(二)一、method方法二、computed方法相当于更新dat中的数据,对数据进行预处理四、watch选项当数据发生变化的时候触发深度监听单独针对某个对象监听五、filters选项过滤器将数据转换格式展示给用户,将输入的值首字母大写...

2021-06-18 23:57:57 81

原创 Vue学习(一 )

Vue基础学习一、HelloWord以及插值表达式二、vue双向绑定自动去空格三、vue的常用指令1、v-if,v-else2、v-show没有执行的时候标签就会渲染,v-if不会渲染。3、v-for4、v-bind绑定绑定class绑定style5、v-on点击事件6、简单分页操作7、v-text覆盖标签的内容8、把内容渲染成html9、v-pre不想被渲染10、v-once只渲染一次四、vue的生命周期五、vue的组件1、全局组件

2021-06-18 23:57:43 68

原创 Gin学习

Gin学习一、导入包进行初始服务package mainimport "github.com/gin-gonic/gin" //引入gin包func main() { r := gin.Default() r.GET("/pings", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "pong", }) }) r.Run() // listen and serve on 0.0.0.0:8080}二、发送请

2021-06-18 23:54:46 212

原创 Grom学习之路

Grom学习之路(一)一、orm的背景1、作用(1)通过操作结构体对象,来达到操作数据库表的目的;(2)通过结构体对象,来生成数据库表;2、优点:二、grom的连接数据库,建表1、因为grom只能对表进行操作,所以需要搭配sql语句来...

2021-06-18 02:22:04 1261 1

原创 微服务之gRPC

微服务之gRPC一、gRPC基础作用:Protobuf在编译的时候,不会自动编译服务,要想使之编译,需要使用gRPC。编译指令:使用上述的编译方式,编译出来的就是RPC的封装服务的思想二、gRPC的环境配置三、grpc的使用1、服务端的使用2、客户端的使用如果看完对自己有所帮助,请点赞支持,谢谢大家...

2021-06-13 17:23:53 437

空空如也

空空如也

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

TA关注的人

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