自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (1)
  • 收藏
  • 关注

原创 golang 网络并发编程模型——为什么使用epoll

golang进程在启动时,会唯一创建epoll实例,并启动netpoll函数,轮询读取epoll中准备好的描述符,并唤醒网络连接描述符中对应的协程。通过多协程+epoll的网络模型,将协程的IO阻塞,控制在用户进程中,而不是在绑定线程后产生的系统调用阻塞,这样就可以避免大量线程被创建,而出现服务内存资源不够用的情况。

2020-12-06 22:55:12 1308

原创 Golang指针类型详解-附带指针测试代码

一、指针相关字段解释二、变量声明存储结构图中变量的声明假设是在函数内进行的,均属于局部变量。图表解释,通常来说变量名i、aj并不会真的独立出现在栈上的某个位置,都是伴随着一些操作出现的,加减法,赋值等操作。例如汇编加法指令,ADD$i,3,为变量i加3,通过变量名i这个地址找到真正的值,然后加3。关于变量值分配到堆上或者栈上,是和编译器编译时分析有关,正常可以理...

2019-11-10 17:42:54 485

原创 错误码规范

错误码规范的好处1.看到错误码就大概知道哪儿出了问题2.方便制定错误码3.减少服务内错误码重复的情况规范如下:错误码长度:六、五位数,示例:1-11-11,共分为三个模块,解释如下: 第一位 第二位 第三位 第四位 第五位 A B ...

2019-10-11 19:34:19 2984

原创 Golang 反射介绍和性能分析

百度百科给的反射定义:“反射是一种计算机处理方式。有程序可以访问、检测和修改它本身状态或行为的这种能力。”我是觉着这个定义有点晦涩难懂,至少我在学Java的时候没太搞明白是什么意思。struct TestStrcut type{ IsField int `json:"is_field"`// 这个是IsField字段,类型是int,tag内容为is_field}为了让大家对反...

2019-09-22 20:35:36 3427

原创 锁、原子操作和golang mutex源码详解

锁的概念对于某一块代码段,多个线程或者协程同时执行会产生一些不符合预期的结果,就需要使用信号量保护这一段代码区,只能由一个线程来占用和执行这段代码.这相当于是一个大型的原子操作,由软件层面来实现.下面是一段结果不符合预期的代码段:var count =0 func main() { wg:=sync.WaitGroup{} wg.Add(2) g...

2019-06-17 15:10:20 1451

原创 HTTP跨域问题的解决方案

本文着重讲怎么处理和分析遇到的跨域问题,对于浏览器同源策略和跨域资源共享只做简要描述。有一定同源策略和跨域知识的程序员可以直接看第三章跨域问题处理方法.目录:一、跨域问题的来源二、跨域请求三、请求跨域处理方法一、跨域问题的来源跨域问题我们只会在浏览器中看到,在服务器、PC客户端、IOS/安卓APP端我们是碰不到跨域问题的.跨域问题的源头在于浏览器的同源策略,所谓同源策略...

2019-05-30 19:12:00 6389 2

原创 http包发送模块详解-golang

功能简介完成http的发送和对http服务器响应数据的处理主要结构体简介1.Request,Response结构体,封装http内容以及解析http协议2.RoundTripper接口,能够执行HTTP发送,并能返回给定请求的response。该功能可由开发者实现3.TransPort结构体,http库内部实现的RoundTripper接口,使用request,reponse,...

2019-04-24 12:01:20 590

原创 代码优化之局部性设计(提高对缓存的命中率)

先说结论:良好的局部性会让应用程序执行的更快,本质是提高对缓存数据的命中率.局部性原理计算机中的局部性设计来源于缓存的概念,由于存储器的速度不一样,寄存器>高速缓存存储器>主存>磁盘,为了提高系统的运行速度,会将近期使用的数据存储在高速存储器(空间小,昂贵)中,这个就是缓存的概念,由缓存产生了系统局部性原理的设计.硬件,操作系统都用到了局部性原理,由于高速缓冲存储器(高速缓存)小而快速...

2019-04-19 18:35:09 1420

原创 HTTP 头部的编码方式——ASCII编码

先说结果,http请求行、响应行的编码方式都为ASCII,这也是为什么需要对url进行url编码,将非ASCII字符转为ASCII字符。我们知道在HTTP头部中传入的信息不会被url encode,那header头如果有非ASCII码,如中文字符等,会怎么被处理呢?答案是,只有ASCII字符才能保证正常工作,在服务器、浏览器中被读出来,中文字符在被读取时可能会出错(取决于服务器自身读取数据...

2019-03-09 19:47:03 9255 8

原创 关于golang中的切片详解

之前对切片的理解是本身是一个指针,指针指向数组,因为数组是值赋值,所以数组作为函数参数传递时,会被复制一份,传递较大数组时会比较浪费内存。之前的理解部分对,但是瑕疵和错误的地方太多。详解slice结构体切片本身是一个结构体,它是被golang封装过的结构体,所以使用起来和数组差不多,其结构体内容如下:  type slice struct {     array ...

2019-01-30 17:16:48 1138

原创 golang 定时任务方面time.Sleep和time.Tick的优劣对比

golang 写循环执行的定时任务,常见的有以下三种实现方式:1、time.Sleep方法: for { time.Sleep(time.Second) fmt.Println("我在定时执行任务") } 2、time.Tick函数: t1:=time.Tick(3*time.Second) for { ...

2019-01-25 18:56:26 30358 2

原创 supervisor的安装和使用

supervisor的简介:        Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候...

2018-10-15 15:35:52 282

原创 在golang中对rabbitmq进行测试,测试每个连接可创建的信道数量

rabbitmq环境:3.7.7,三台个人开发机组成的集群,使用haproxy代理转发进行生产者测试,测试在go中可以连接rabbitmq的协程数。测试了四种情况第一种:创建amqp连接不关闭,加锁创建channel,channel不关闭,一共可以创建2048个channel,执行2048次发送数据到队列,之后会报”channel id space exhausted“,经多次测试,每个连...

2018-09-21 10:50:23 3519

原创 centos 7安装postman,以及无法启动的问题,错误:error while loading shared libraries: libXss.so.1: cannot open shared

首先安装地址如下(已经解压安装好的请无视):http://www.feihu1996.cn/?id=287我的postman按照如上情况执行不了,也没有报错,为切换到安装路径,终端中执行Postman应用程序:[chen@czq app]$ ./Postman错误信息如下:./Postman: error while loading shared libraries: lib...

2018-08-30 10:27:37 6224

转载 web.xml中servlet-mapping的配置(包含/和*的解释与介绍)

转载地址:https://www.cnblogs.com/Dhouse/archive/2013/10/29/3393927.html元素在Servlet和URL样式之间定义一个映射。它包含了两个子元素和,元素给出的Servlet名字必须是 在元素中声明过的Servlet的名字。元素指定对应于Servlet的URL路 径,该路径是相对于Web应用程序上下文根的路径。例如:

2017-11-23 14:42:38 6865

原创 JS元素中属性的规范使用

例如:input元素,如果要书写该元素的属性时,像id=aaa;这种书写格式是错误的,规范使用是id="aaa";必须要添加双引号或者单引号,你在引用时它才会生效。

2017-07-16 22:57:34 287

原创 CSS中类选择器的连接用法

例如: .important.warning{  }  这个指包含important和warning关键词的会起到作用。如果是 .important  .warning{  }类型的类选择器则是指后代选择器,important类选择器中的子代warning类才会匹配到该样式。

2017-07-11 00:38:01 848

原创 java split()函数对字符串分割(通过空格)!

给定一个带n个空格的长字符串,我们要根据空格把他们分割开来,例如:  String str="  this is a txt  !  ";首先我们要对收尾两端的空格进行处理,String类中的trim()函数,可以解决这个问题,会把字符串的首尾空格去除掉,并返回处理后的字符串。String str1=str.trim(); 此时str1="this is a txt !";

2017-06-27 23:48:43 3335 1

原创 Result Maps collection already contains value for Mapper.BaseResultMap错误原因

完整的错误报告如下:Caused by: java.lang.IllegalArgumentException: Result Maps collection already contains value for com.mapper.xxxMapper.BaseResultMap at org.apache.ibatis.session.Configuration$StrictMap.p

2017-06-04 19:23:17 1356

原创 Spring配置中对静态资源的正确引用!

web.xml中,对servlet的配置,现在一般会选择如下的配置:springmvc/它会过滤所有的请求,这个时候访问静态资源,例如:css文件,JavaScript文件,图片等。会报如下警告:警告: No mapping found for HTTP request with URI [/Spring_mvc_test/css/main.css] in Dispat

2017-05-24 21:40:23 519

原创 Java web开发中,转发与重定向的差异!

初学JSP,对转发和重定向很多人都搞不太清,实际上不难理解。转发,顾名思义,将页面转到另外一个页面,不过仅限于内部页面之间的转换,浏览器并不会知道内部进行了转发。重定向,将信息发送给浏览器,通知浏览器发送一个新的页面请求。url在浏览器端也会发生改变,呈现新的浏览器。由他们俩的特点可知,转发的速度要比重定向快,因为重定向要经过浏览器。有时访问的目标界面是外部网站,只能使用重

2017-05-19 20:22:46 327

原创 SSM项目-对SpringMVC项目进行了整合

第一个酒店管理系统的ssm项目,附带了数据库文件,链接如下:http://download.csdn.net/detail/ajlgl/9826452第二个Spring Demo实例,链接如下:http://download.csdn.net/detail/qq_36184390/9831632第三个Spring+springMVC+mybatis项目,链接如下:http://

2017-05-17 18:39:59 442

test.tar.gz

Golang 反射测试案例

2019-09-22

空空如也

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

TA关注的人

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