go
琅琊山二当家
这个作者很懒,什么都没留下…
展开
-
Go语言的并发和并行
package mainimport ( "fmt")func loop(done chan bool) { for i := 0; i { fmt.Print(i) } done true}func main() { done := make(chan bool) go loop(done) go loop转载 2016-05-29 21:41:06 · 2982 阅读 · 1 评论 -
Golang适合高并发场景的原理
转载:典型的两个现实案例:我们先看两个用Go做消息推送的案例实际处理能力360消息推送的数据:16台机器,标配:24个硬件线程,64GB内存Linux Kernel 2.6.32 x86_64单机80万并发连接,load 0.2~0.4,CPU 总使用率 7%~10%,内存占用20GB (res)目前接入的产品约1280万在线用户2分钟一次GC,停顿2秒 (...转载 2019-04-09 11:36:57 · 400 阅读 · 0 评论 -
GO语言学习系列九——GO的结构(struct)与方法(method)
转载:作者:checklin链接:https://www.jianshu.com/p/863c270f8328说明:前面两个输出已经介绍过,我们重点来说下调用t.Add()以及输出我们在上面可以看出,新增了一个变种函数(其实是方法),(t *T)这就是给这个结构体绑定函数,然后在结构体中就可以直接调用Add这个方法,GO就是以这种形式来实现面像对象的思想结构(struct)由于在...转载 2019-04-03 20:27:47 · 548 阅读 · 0 评论 -
GO性能优化小结
转载:https://www.cnblogs.com/zhangboyu/p/7456609.html这个博客也不错https://www.cnblogs.com/zhangboyu/category/1068906.html1 内存优化1.1 小对象合并成结构体一次分配,减少内存分配次数做过C/C++的同学可能知道,小对象在堆上频繁地申请释放,会造成内存碎片(有的叫空洞),导...转载 2019-04-09 19:16:08 · 177 阅读 · 0 评论 -
golang 中 sync.Mutex 和 sync.RWMutex
转载:https://www.jianshu.com/p/679041bdaa39介绍golang 中的 sync 包实现了两种锁:Mutex:互斥锁 RWMutex:读写锁,RWMutex 基于 Mutex 实现Mutex(互斥锁)Mutex 为互斥锁,Lock() 加锁,Unlock() 解锁 在一个 goroutine 获得 Mutex 后,其他 goroutine ...转载 2019-04-09 20:19:52 · 593 阅读 · 0 评论 -
go for range的一个测试
package mainimport "fmt"func main() { //这是我们使用range去求一个slice的和。使用数组跟这个很类似 nums := []int{2, 3, 4} sum := 0 //方式1 for num := range nums { sum += num } fmt.Println("sum:", sum) //方式2 sum ...原创 2019-04-29 11:24:34 · 508 阅读 · 0 评论 -
go 数组(array)、切片(slice)、map、结构体(struct)
转载:https://www.cnblogs.com/jackylee92/p/6171897.html一 数组(array) go语言中的数组是固定长度的。使用前必须指定数组长度。 go语言中数组是值类型。如果将数组赋值给另一个数组或者方法中参数使用都是复制一份,方法中使用可以使用指针传递地址。 声明:var arrayName = [arraySize]da...转载 2019-04-29 11:29:40 · 790 阅读 · 0 评论 -
go的一些写法总结
1 以下两种基本等价func main() { c := make(chan bool, 100) for i := 0; i < 100; i++ { go func(i int) { fmt.Println(i) c <- true }(i) } for i := 0; i < 100; i++ { b :=<-c fmt.P...原创 2019-04-29 14:48:13 · 1194 阅读 · 0 评论 -
go语言记log:glog剖析
作者:legendtkl链接:https://www.jianshu.com/p/1af5b452494f首发: legendtkl.comlog的一个典型应用场景就是实现log分级,比如线上环境不需要记录DEBUG的log信息。今天介绍一下glog。先看一个glog的简单例子。//file name: glog.gopackage mainimport ( "flag...转载 2019-05-24 16:21:44 · 851 阅读 · 0 评论 -
goroutine 体验下并行的感觉
package mainimport "fmt"import "time"var done1 chan boolfunc main(){ done1 = make(chan bool) // 创建一个channel go fDigui() go func() { fmt.Println("main begins") a := fib(45) ...原创 2019-05-17 14:48:37 · 230 阅读 · 0 评论 -
Go by Example / Golang入门教程(非常详细)
转载:https://gobyexample.com/Go by ExampleGois an open source programming language designed for building simple, fast, and reliable software.Go by Exampleis a hands-on introduction to Go u...转载 2019-04-08 18:04:14 · 2461 阅读 · 0 评论 -
golang 格式“占位符”%d,%f,%s等应用类型
转载:https://blog.csdn.net/qq_42689281/article/details/83857780golang 的fmt 包实现了格式化I/O函数,类似于C的 printf 和 scanf。红色部分为常用占位符对于 %g/%G 而言,精度为所有数字的总数,例如:123.45,%.4g 会打印123.5,(而 %6.2f 会打印123.45)。%e 和 ...转载 2019-04-02 17:59:36 · 2291 阅读 · 0 评论 -
centos下安装golang
转载 :https://blog.csdn.net/weiwenjuan0923/article/details/80016623wget -c https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gztar -C /usr/local/ -zxvf go1.8.3.linux-amd64.tar.gz 配置环境变...转载 2018-10-26 14:40:03 · 1886 阅读 · 0 评论 -
Go 单例模式
转载:https://blog.csdn.net/jiaolongdy/article/details/79450475最近几年go语言的增长速度非常惊人,吸引着各界人士切换到Go语言。最近有很多关于使用Ruby语言的公司切换到Go、体验Go语言、和Go的并行和并发解决问题的文章。过去10年里,Ruby on Rails已经让众多的开发者和初创公司快速开发出强大的系统,大多数时候不需要担心...转载 2019-04-04 09:57:30 · 1488 阅读 · 1 评论 -
go学习笔记(1 基础)
转载:http://www.runoob.com/go/go-variables.htmlGo 语言变量变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量可以通过变量名访问。Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的一般形式是使用 var 关键字:var identifier type变量声明第一种,指定变量类型,如...原创 2019-04-02 10:18:59 · 353 阅读 · 0 评论 -
go的切片下标取值
s := arr[startIndex:endIndex] 将arr中从下标startIndex到endIndex-1 下的元素创建为一个新的切片package mainimport "fmt"func sum(s []int, c chan int) { sum := 0 for _, v := range s { sum += v } c <- sum /...原创 2019-04-08 09:43:42 · 6317 阅读 · 0 评论 -
go学习笔记(3结构体)
转载:http://www.runoob.com/go/go-structures.htmlGo 语言结构体Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性:Title :标题 Author : 作者 Subjec...转载 2019-04-02 14:43:55 · 160 阅读 · 0 评论 -
Go语言并发与并行学习笔记(一)
转载:https://blog.csdn.net/kjfcpua/article/details/18265441如果不是我对真正并行的线程的追求,就不会认识到Go有多么的迷人。Go语言从语言层面上就支持了并发,这与其他语言大不一样,不像以前我们要用Thread库 来新建线程,还要用线程安全的队列库来共享数据。以下是我入门的学习笔记。首先,并行!=并发, 两者是不同的,可以参考:h...转载 2019-04-08 10:59:26 · 188 阅读 · 0 评论 -
go channel的小例子
1 goroutinue可以实现并行,也就是说,多个协程可以在多个处理器同时跑。而...channel实际上是一个有类型的消息队列,遵循先进先出的特点package mainimport "fmt"func main() { ch := make(chan int, 2) ch <- 1 ch <- 2 value := <-ch if val...原创 2019-04-08 14:04:37 · 361 阅读 · 0 评论 -
Go学习笔记(4语言切片(Slice))
转载:http://www.runoob.com/go/go-slice.htmlGo 语言切片(Slice)Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。定义切片你可以声明一个未指定大小的数组来定...转载 2019-04-02 16:43:11 · 181 阅读 · 0 评论 -
go是面向对象语言吗?
转载链接:https://segmentfault.com/a/1190000001832282#articleHeader5原文链接:http://spf13.com/post/is-go-object-oriented前言面向对象的含义引入了对象(object)、类(class)、继承(inheritance)、子类(subclass)、虚方法(virtual method)、协程...转载 2019-04-02 17:00:33 · 783 阅读 · 0 评论 -
go database/sql sql-driver/mysql 操作
转载:https://www.cnblogs.com/jackylee92/p/6209596.html这里使用的是github.com/Go-SQL-Driver/MySQL,所以需要下载一个github.com/Go-SQL-Driver/MySQL引入 database/sql 和github.com/Go-SQL-Driver/MySQL这里实现了对数据库的 增、删、改...转载 2019-05-17 18:08:35 · 645 阅读 · 0 评论