- 博客(11)
- 收藏
- 关注
原创 go:int->string
类型是一个不可变的字节序列,它并不代表一个数值类型。函数(对于整数到ASCII的转换)或者。转换为它的字符串表示形式,并将其存储在。类型,但是这不是一个合法的转换,因为。)或一个可转换为字节切片的类型(比如。尝试运行这段代码会导致编译错误,因为。转换为它的字符串表示形式,你应该使用。Go语言中,尝试将一个整数类型(如。函数(对于任意大小的整数,通常使用。类型是不正确的,因为Go的。构造函数期望一个字节切片(变量中,然后打印出来。函数来格式化字符串。这两种方法都会将整数。
2024-06-18 11:34:00
238
1
原创 http:长连接与短连接
不过不管客户端是否显式要求长连接,如果服务器支持长连接,它总会在响应报文里放一个Connection: "keep-alive"头字段,告诉客户端: “我服务器是支持长连接的,接下来的http请求就复用这个TCP连接。使用"keepalive_timeout"指令,设置长连接的超时时间,如果在一段时间内tcp连接上没有任何数据流动则主动断开该tcp连接,从而避免空闲tcp连接占用服务器资源。因为 TCP 连接长时间不关闭,服务器必须在内存里保存连接的状态,其实就是占用了服务器的资源。
2023-07-31 14:19:02
802
1
原创 go:http
为什么需要连接池?除了连接池能非常方便的对连接进行管理外,一句话,在高吞吐时连接池大大提高了数据传输的效率。从两个方面说:1、避免反复的三次握手和四次握手长连接的建立需要进行三次握手,而连接的释放需要进行四次握手,这是发生在系统层面的两个动作,对于单条连接来说耗时微乎其微,但在高吞吐场景时,耗时则不能忽略。所以连接池的即取即用和用完放回的特性,避免了大量三次握手和四次握手的无效耗时,节省了系统资源。2、 增加并行车道,实现全双工并行数据通信包括单工、半双工和全双工。
2023-06-29 17:53:57
195
1
原创 GO:并发- goroutine
groutine: 由GO运行时(runtime)负责调度的,轻量的用户级线程资源占用小,每个 goroutine 的初始栈大小仅为 2k;由 Go 运行时而不是操作系统调度,goroutine 上下文切换在用户层完成,开销更小;在语言层面而不是通过标准库提供。goroutine 由go关键字创建,一退出就会被回收或销毁,开发体验更佳;语言内置 channel 作为 goroutine 间通信原语,为并发设计提供了强大支撑。1.2 groutine的基本用法。
2023-04-06 11:20:05
258
原创 GO:函数
函数声明中的函数名其实就是变量名,函数声明中的 func 关键字、参数列表和返回值列表共同构成了。而参数列表与返回值列表的组合也被称为如果两个函数类型的函数签名是相同的,即便参数列表中的参数名,以及返回值列表中的返回值变量名都是不同的,那么这两个函数类型也是相同类型。
2023-04-06 10:20:03
71
原创 GO:切片
数组的两个属性:元素类型和数组长度在分配内存时,为数组分配一整块连续的内存空间,内存空间的大小就是各个元素的大小之和/如果两个数组所分配的内存大小不同,那么他们肯定是不同的数组类型。
2023-04-04 18:52:45
120
原创 GO:Map
map的key和value可以是相同的类型,也可以不同函数类型、map 类型自身,以及切片类型是不能作为 map的 key 类型的(他们只支持和nil的比较,不支持同类型的两个变量的比较)2.map变量的声明和初始化如果只声明没有初始化,默认为nil,但是map并不支持初值为零值 nil 的切片类型变量,可以借助内置的 append 的函数进行操作,这种在 Go 语言中被称为“所以我们必须对map类型的变量进行显示出实话后才能使用。
2023-03-31 18:44:28
406
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人