go 的成长之路
文章平均质量分 65
中国流浪猫
不想当写博客的博主。从事软件开发5年了,也写过很多技术文档,没有写博客。朝花夕拾。
展开
-
go 的入门之路 Socket 编程
废话不多说先上代码:服务端代码server.go package mainimport ( "net" "fmt" "time" "bytes" "io")func main() { add:=new(net.TCPAddr) add.IP= net.ParseIP("127.0.0.1") add.Port=7777 tcpl,err:=net.ListenT原创 2017-09-24 15:37:57 · 1085 阅读 · 0 评论 -
golang slice 与list 的性能分析。
一 · 比较slice 与 list 遍历创建和添加元素速度。package mainimport ( "time" "fmt" "container/list")func main() { t := time.Now() sli:=make([]int ,10) for i := 0; i<1*100000*1000;i++...原创 2018-03-30 13:19:34 · 9932 阅读 · 2 评论 -
go语言连接mysql 实现增删改查
package mainimport( "fmt" "database/sql" _ "github.com/go-sql-driver/mysql" "log")var ( Id string Name string)func main(){ db, err := sql.Open("mysql", "root:123456@tcp(127.0.0.1:3306.原创 2018-03-13 22:05:44 · 1170 阅读 · 0 评论 -
go defer 关键字的需要注意的问题
一:go defer 声明的代码在goroutine 没有执行:package mainimport ( "fmt" "time")var ch chan intfunc main() { ch =make(chan int) for i:=0;i<10 ;i++ { go test(i) } for i:=0;i<10 ;i++ { <...原创 2018-03-12 12:00:49 · 676 阅读 · 0 评论 -
linux 部署golang 项目(直接部署和基于nginx部署)
直接部署:linux 上安装golang 项目的方式按照官网的 https://golang.org/doc/install#install(要梯子)的方式,安装go运行环境到/usr/local/go/bin 下。设置GOPATH发现如果按照官方给的安装方法只指定GOROOT的路径,于是自己新建一个目录gopath 作为GOPATH 的目录,并且设置环境变量(export GOPATH=/new...原创 2018-03-17 10:41:02 · 46903 阅读 · 5 评论 -
golang mutex锁的竞争关系浅析
刚才对golang的锁关系进行 一番思索,想着协程获取golang 对象锁的,是按先按时间先后顺序获取的,其实不然。下面请看代码,顺带写了2种读写锁的应用。package mainimport ( "sync" "fmt" "time")//开启10个线程 同时去竞争一个互斥锁 谁有能力谁上var mutex *sync.Mutex;var ch chan intfu...原创 2018-03-09 15:28:43 · 1709 阅读 · 0 评论 -
go chan 两种应用模型
第一种模型:主线程等待所有协程完成,主线程阻塞等待所有协程完成。 package mainimport ( "fmt" "math/rand" "time")// go 协程应用之一// 创建10个线程//主线程阻塞,等待所有子线程计算完成// 子线程完成把结果放在子线程中func main() { var testchan =make(chan int ,10) ...原创 2018-02-28 11:24:48 · 652 阅读 · 0 评论 -
golang 多线程爬虫
这是一个golang爬虫demo 爬去一个美女图片网站的首页所有图片采用golang 多线程的方式爬取图片 将爬到的图片保存到本地代码中有用到goquery 网页数据解析框架 chan 控制goroutine 进行下载http://www.umei.cc/一个妹子图片网站 请求的 header 必须带着 Referer 否则404 (比较简单的一种反爬虫策略)用wireshark 抓原创 2018-01-17 17:41:38 · 5156 阅读 · 1 评论 -
go Http Post 发送文件流
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl原创 2017-09-24 20:50:29 · 10632 阅读 · 1 评论 -
go的入门之路 http Get Post请求
golang之Http协议Get请求package mainimport ( "net/http" "fmt" "io/ioutil")func main() { get()}func get(){ resp,err := http.Get("http://www.baidu.com") if err!=nil { //如果没有获取到url数据 会返回一个erro...原创 2017-09-21 21:24:33 · 1243 阅读 · 0 评论 -
golang优雅的面向对象
大家都知道,面向对象的3大基本特征:封装,集成,多态。封装:封装是指将某事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其它对象go语言的面向对象go语言仅支持封装,不支持继承和多态。go 语言没有class 只有struct结构体 是创建是堆上还栈上,如果是栈上,则函数结束则结束 内存则销毁,如果想程序不被销毁,则需要将str...原创 2019-02-18 23:04:06 · 507 阅读 · 2 评论