自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Paddy90的专栏

学习、分享、记录、互助

  • 博客(31)
  • 收藏
  • 关注

原创 Go 1.9 之后的sync包

sync.Mapgo 1.9之后加入了线程安全的map,sync.Map。 源码中的注释为我们说明了sync.Map,是一个并发的map,恒定时间调用loads、stores、deletes。同时被多个goroutines调用是安全的。 在使用时不允许分享这些属性,它可能导致更坏的性能与更坏的安全性,相比较于使用一个普通的map与读写锁配合使用。 零map是有效的并且是空的。 在使用之...

2018-03-22 17:13:44 702

转载 深入了解 Go 方法

转:http://www.songjiayang.com/posts/shen-ru-liao-jie-go-yu-yan-de-fang-fa方法主要源于 OOP 语言,在传统面向对象语言中 (例如 C++), 我们会用一个“类”来封装属于自己的数据和函数,这些函数就叫做方法。虽然 Go 不是经典意义上的面向对象语言,但是我们也可以在一些接收者(例如自定义类型,结构体)上定义函数,同理这...

2018-02-28 10:28:42 342

转载 HTTP 状态码

一些常见的状态码为:200 - 服务器成功返回网页 404 - 请求的网页不存在 503 - 服务不可用 详细分解:1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码。代码 说明 100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。2xx (成功

2018-01-31 20:16:18 394

原创 OpenShift 常用命令

前言:本篇博客,为自己的记录。 1. 登录:oc login 2. 创建一个新项目:oc new-project ProjectName 创建一个项目(ProjectName新建的项目名) 3. 查看当前项目下的pod: oc get pod 4. 查看project: oc get project 5. 进入一个project: oc project projectname 6. bu

2018-01-31 20:14:47 4918 1

原创 Go Context包使用

前言做为go的使用者,大家应该都多多少少的见过Context包。可是因为我得懒惰都没有跳转进去好好看看,导致我对Context包理解并不深。写博客是一个很好的方式提醒自己不要懒惰,而且还能当成自己的笔记,平时翻一翻加深下记忆。Context使用场景目前总结两种使用场景: 1. 主动停止groutine 2. 传递数据Context是什么?Context直译为上下文,我们来看

2017-12-11 18:39:22 1380

原创 apache ab压测与参数传递

前言入职了新公司配置了mac办公,当要进行测试时同事说到用ab测试,当时的我一脸懵逼ab是个啥?当他为我解释完ab是个啥的时候,我想那就动手装一个吧,结果人家说mac下已经装好了,再一次被打脸…. 下面我们进入正题,再网上搜了很多资料大部分都是介绍了一些安装及无参数的测试,对需要传参测试的并不太适用,本篇文章是对网上文章的一些总结,测试均采用自己的例子。压测相关概念吞吐率(Requests pe

2017-11-14 15:32:42 3192

原创 Go类型转换 实现

前言近日在查看博客的时候发现阅读量最多的是我转载的一片文章“Go语言类型转换”,看来像是go语言这种强类型的语言还是有很多人有需求要对go语言中变量进行类型转换。 在平时的工作中也用到了一些将当前时间转换的问题也一并写在了里面,希望对观看者有帮助。已经将代码上传到GitHub上,名字不太好,暂时还没有改名,各位想要使用可以直接下载或者拷贝出源码使用。 下载地址。简介转换代码主要包含时间的转换、b

2017-10-12 22:35:54 718

原创 golang interface理解

最早对interface的认知比较片面,很多人都说interface与channel是go语言的灵魂。然而在工作中使用的机会比较少,发现自己对interface的理解太片面。下面就记录并总结下go中的interface。interface是个啥go程序设计中是这样解释的“接口是一种抽象类型,他并没有暴露所包含数据的布局或者内部结构,当然也没有那些数据的基本操作,它所提供的仅仅是一些方法

2017-09-27 17:54:31 3303

原创 CentOS 7下安装nsq

CentOS 7安装nsqnsq简介NSQ 是实时的分布式消息处理平台,其设计的目的是用来大规模地处理每天数以十亿计级别的消息。它具有分布式和去中心化拓扑结构,该结构具有无单点故障、故障容错、高可用性以及能够保证消息的可靠传递的特征依赖nsq使用go语言编写,所以我们要安装go的环境。网上有说要去1.4版本以上,还有说要求是1.6版本以上。我就索性安装了1.8的版本。Go环境安装go环境中文版下载地

2017-08-09 16:00:55 3388

原创 Go net/rpc 包总结

RPCrpc远程过程调用,go net/rpc包提供了通过网络访问一个对象的方法的能力。服务器需要注册对象, 通过对象的类型名暴露这个服务。注册后这个对象的输出方法就可以远程调用,这个库封装了底层传输的细节,包括序列化。服务器可以注册多个不同类型的对象,但是注册相同类型的多个对象的时候回出错。 通过阅读net/rpc包你可以学到互斥锁、goroutine、map、channel、interface

2017-07-02 17:29:01 1998

原创 Go net/PRC源码阅读server.go

Server端本篇文章主要是在Go net/rpc 的server.go包进行翻译,并添加注释之后会对client以及server进行总结,废话不多说 直接贴代码了。有不正确的地方还请多多指正。package rpcimport ( "bufio" "encoding/gob" "errors" "io" "log" "net" "net/ht

2017-07-02 16:25:30 829

原创 Go net/PRC源码阅读client.go

Client端本篇文章主要是在go net/rpc 的client.go包进行翻译,并添加注释之后会对client以及server进行总结,废话不多说 直接贴代码了。有不正确的地方还请多多指正。package rpcimport ( "bufio" "encoding/gob" "errors" "io" "log" "net" "net/h

2017-07-02 16:14:33 813

原创 Go缓存库cache2go源码阅读

项目地址:https://github.com/muesli/cache2go/blob/master/README.md项目介绍cache2go: 一个并发安全,具有心跳功能的缓存库。核心功能只有3个文件。从中可以学习到,go语言中的锁、goroutine、map操作等。 主要特性如下: 1. 并发安全 2. 可设置缓存项的生命周期 3. 可设置缓存清理周期 4. 包含缓存增加、删除的

2017-06-06 16:20:07 3493

原创 golang Glide 包管理windows下使用

安装安装这里就不相信的介绍了,我是参考了如下两篇文档 https://segmentfault.com/a/1190000005929355 http://studygolang.com/articles/7129 这里需要说明的是,大部分介绍gilde的文章都是在Linux下安装,在windows执行相关命令是不能执行的。 我这里只是go get github.com/Mastermind

2017-06-02 11:26:12 4490

原创 golang使用gRPC创建双向流模式

gRPC库介绍gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言。 gRPC提供了一种简单的方法来精确地定义服务和为iOS、Android和后台支持服务自动生成可靠性很强的客户端功能库。 客户端充分利用高级流和链接功能,从而有助于节省带宽、降低的T

2017-05-03 14:31:06 14091 1

转载 Go语言类型转换

本文转自Golove博客:http://www.cnblogs.com/golove/p/3262925.htmlstrconv 包中的函数和方法atob.goParseBool 将字符串转换为布尔值 它接受真值:1, t, T, TRUE, true, True 它接受假值:0, f, F, FALSE, false, False. 其它任何值都返回一个错误func ParseBool(

2017-04-01 15:11:00 7165

原创 Go 文件读写

看了下go语言的标准库,最开始看了下io库想着看看go语言提供的函数如何实现文件的读写,粗略的看了下就想着使用go语言提供的方法读写文件试下吧。 读文件,示例:package mainimport ( "fmt" "io/ioutil" "os")const ( FILE = "./test.txt")//Read filefunc main(){

2017-03-07 16:40:23 1598

原创 Dockerfile使用

基本结构Dockerfile由一行行命令语句组成,并且支持以‘#’开头的注释行。 Dockerfile的指令是忽略大小写的,建议使用大写,每一行只支持一条指令,每条指令可以携带多个参数。 Dockerfile的指令根据作用可以分为两种,构建指令和设置指令。构建指令用于构建image,其指定的操作不会在运行image的容器上执行;设置指令用于设置image的属性,其指定的操作将在运行image的容

2017-03-03 15:18:12 563

原创 Go语言-并发

并发的含义并发:逻辑上具备同时处理多个任务的能力 并行:物理上在同意时刻执行多个并发任务 多线程或多进程是并行的基本条件,但是单线程也可用协程做到并发。尽管协程在单个线程上通过主动切换来实现多任务并发。通常情况下,用多进程来实现分布式和负载均衡。用多线程抢夺更多的处理器资源。使用协程来提高处理器时间片利用率。 Go语言创建并发任务只需在函数调用前添加关键字“go”go print

2016-12-06 22:32:33 1761

原创 Go语言-接口

接口(interface)的定义接口代表一种调用契约,是多个方法声明的集合。接口要实现的是做什么,而不关心如何做。接口最常见的使用场景是对包外提供访问,或预留扩展空间。 Go语言接口实现机制很简洁,只要目标类型方法集内包含接口声明的全部方法,就被视为实现了该接口,无需做显示声明,当然目标类型可实现多个接口。 其实接口也是一中结构,只是编译器会对其做出很多限制: - 不能有字段 - 不能

2016-11-24 22:32:53 452

原创 Go语言-方法

方法方法是与对象实例绑定的特殊函数。方法是面向对象。方法和函数区别在于前者有前置实例接收参数,编译器以此确定方法所属类型。 可以为当前包,以及除接口和指针以外的任何类型定义方法。package mainimport( "fmt")type N intfunc (n N)toString()string{ //方法 return fmt.Sprintf("%#x

2016-11-24 22:06:49 540

原创 Go语言-数据

字符串字符串是不可变字节(byte)序列,其本身是一个复合结构。内置函数len可以返回字节数组长度,cap不接受字符串类型参数。字符串的默认值为”“而不是nil。Go语言中使用‘`’防转义。支持”!=、==、<、>、+、+=”操作符。允许以索引访问字节数字(非字符),但不能获取元素地址。func main(){ str := "abcde" fmt.Println(str[1])

2016-11-21 22:45:48 604

原创 Go语言-函数

函数定义函数是结构化编程的最小模块单元,使用关键字‘func’定义函数。Go语言定义函数的一些特点总结如下: - 无需前置声明 - 不支持命名嵌套定义 - 不支持同名函数重载 - 不支持默认参数 - 支持不定长变参 - 支持多返回值 - 支持命名返回值 - 支持匿名函数和闭包 函数属于第一类对象,具备相同签名(参数及返回值类型)的视为同一类型。 定义一个函数: func tes

2016-11-20 20:04:55 645

原创 Go语言-表达式

Go语言学之表达式保留的关键字Go语言仅有25个保留的关键字,下面我们就列举下这25个关键字 break default func interface select case defer go map struct chan else goto package switch const fallthrough if range

2016-11-20 16:27:11 1131

转载 Git使用方法

原文出处:http://www.cnblogs.com/tugenhua0707/p/4050072.htmlGit使用教程 一:Git是什么?       Git是目前世界上最先进的分布式版本控制系统。二:SVN与Git的最主要的区别?      SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中

2016-11-16 11:19:27 437

原创 Go语言-类型

前言:即将成为一名Golang语言的开发人员,把自己学习的过程记录下来与大家一起分享,希望能给您带来帮助,如果在编写的过程中有什么错误或者我说的不对的地方还请大家不吝赐教,给我留言我好及时做修改防止误导其他阅读人员,在此就先行感谢了! 声明:本问中的内容均出自《Go语言编程》、《Go语言学习笔记》、《Go并发编程实战》、以及视频“跟着无闻学Go”视频连接如下:[http://edu.51cto.c

2016-11-09 22:19:28 811

原创 Python文件读写IO操作

Python中的文件读写操作:我想大部分的编程语言的文件读写操作都不会有太大差别基本上都是按照以下的步骤执行的:open打开文件read,write读或写文件close关闭文件应牢记使用close关闭文件Python中一般使用以下方式进行文件的读写#open filetry:read,writefinally:file.close()#关闭文件Pytho

2016-10-11 15:25:16 1290

原创 Python循环与条件控制语句

Python中的条件控制语句及循环控制语句Python中的条件控件语句主要有以下3种if、elif、else其中elif的用法与C++中的else if的使用方法相同。示例:num = 2if num == 1: print("case 1")elif num == 2: print("case 2")else: print("not right")

2016-10-11 13:23:35 988

原创 Python中字典的用法

Python中字典的用法注:以下所有示例使用的是Python3.5.版本Python中的字典与C++中的map容器很相似,都是键值对的形式存储,然而Python中对字典的操作远比C++中对map的操作要方便的多。C++中的map与Python中字典的共同点是键是唯一的。C++中声明一个map:mapm_Test;Python中声明一个字典:dict = {} 由此便声明了一个空的字

2016-09-30 20:56:23 7505 1

原创 Python中列表与元组的使用

Python中列表与元组的使用列表list是一个可改变的序列,元组是不可改变的。定义一个列表:list = [a,b,c,d,] #定义一个列表使用‘[]’,或者list('abcd')是不是很像构造函数,列表并没有对列表中元素的类型做限制>> list = ['a','b',1,2]>>> list['a', 'b', 1, 2]>>> list.append(0.3)

2016-09-29 19:40:32 1745

原创 Python字符串使用方法

Python字符串有编程基础的人对字符串并不陌生,在C++中定义一个字符需要带上数据类型如:string str=“Hello”而在Python中定义一个字符串很方便str = ‘Hello’  #使用单引号str = “Hello” #使用双引号Python字符使用注:以下示例均测试通过  1 capitalize()方法,将字符串的首字母大写: str="hello"

2016-09-26 20:47:12 846

空空如也

空空如也

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

TA关注的人

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