- 博客(4)
- 收藏
- 关注
原创 Go 经典入门系列 21:Go 协程
Go 协程是什么?Go 协程是与其他函数或方法一起并发运行的函数或方法。Go 协程可以看作是轻量级线程。与线程相比,创建一个 Go 协程的成本很小。因此在 Go 应用中,常常会看到有数以千计的 Go 协程并发地运行。Go 协程相比于线程的优势 相比线程而言,Go 协程的成本极低。堆栈大小只有若干 kb,并且可以根据应用的需求进行增减。而线程必须指定堆栈的大小,其堆栈是固定不变的。 Go 协程会复用(Multiplex)数量更少的 OS 线程。即使程序有数以千计的 Go 协程,也可能只
2020-12-23 14:39:39 292
原创 Go 经典入门系列 24:Select
什么是 select?select语句用于在多个发送/接收信道操作中进行选择。select语句会一直阻塞,直到发送/接收操作准备就绪。如果有多个信道操作准备完毕,select会随机地选取其中之一执行。该语法与switch类似,所不同的是,这里的每个case语句都是信道操作。我们好好看一些代码来加深理解吧。示例packagemainimport("fmt""time")funcserver1(chchanstring){time....
2020-12-23 14:11:35 252
原创 golang中map并发读写问题及解决方法
一、map并发读写问题如果map由多协程同时读和写就会出现fatalerror:concurrentmapreadandmapwrite的错误如下代码很容易就出现map并发读写问题funcmain(){c:=make(map[string]int)gofunc(){//开一个协程写mapforj:=0;j<1000000;j++{c[fmt.Sprintf("%d",j)]...
2020-12-02 18:41:09 2768
原创 Golang数组的传递详解
概念介绍数组与切片数组是具有相同唯一类型的一组已编号且长度固定的数据项序列。数组长度最大为2Gb,它是值类型。切片是对数组一个连续片段的引用,所以切片是一个引用类型。按值传递和按引用传递Go语言中函数的参数有两种传递方式,按值传递和按引用传递。Go默认使用按值传递来传递参数,也就是传递参数的副本。在函数中对副本的值进行更改操作时,不会影响到原来的变量。按引用传递其实也可以称作”按值传递”,只不过该副本是一个地址的拷贝,通过它可以修改这个值所指向的地址上的值。Go语言中,在函数调用时,
2020-12-02 16:48:43 508 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人