
go
文章平均质量分 95
hguisu
这个作者很懒,什么都没留下…
展开
-
go进阶-GO创建web服务+websocket详解
go提供了一系列用于创建web服务器的标准,而非常简单。只需要调用net/http包中的ListenAndServe函数并传入网络地址和负责处理的处理器就ok了。net/http库实现了整套的http服务中的客户端、服务端接口,可以基于此轻松的发起HTTP请求或者对外提供HTTP服务。注1:如果网络地址为空,则默认使用hhtp的端口80进行网络连接。如果处理器参数为nil,则使用默认的多路复用转发器DefaultServeMux(Default默认 Serve服务器 Mux多路复用器)。原创 2023-02-13 12:06:15 · 1666 阅读 · 0 评论 -
GO进阶(5) 垃圾回收机制
当程序的内存占用达到一定阈值时,整个应用程序就会全部暂停,垃圾收集器会扫描已经分配的所有对象并回收不再使用的内存空间,当这个过程结束后,用户程序才可以继续执行,Go 语言在早期也使用这种策略实现垃圾收集,但是今天的实现已经复杂了很多。在应用程序中会使用到两种内存,分别为堆(Heap)和栈(Stack) , GC负责回收堆内存,而不负责回收栈中的内存:栈是线程的专用内存,专门为了函数执行而准备的,存储着函数中的局部变量以及调用栈,函数执行完后,编译器可以将栈上分配的内存可以直接释放,不需要通过GC来回收。原创 2023-03-05 15:08:05 · 1891 阅读 · 1 评论 -
Go整洁架构设计——目录结构基本布局
随着项目的代码量在不断地增长,不同的开发人员按自己意愿随意布局和创建目录结构,项目维护性就很差,代码也非常凌乱。良好的目录与文件结构十分重要,尤其是团队合作的时候,良好的目录与文件结构可以减少很多不必要的麻烦。项目目录结构规范的的本质是提高了代码的可读性,最终目的是提高团队协作效率,降低工程维护成本。原创 2023-03-05 09:58:12 · 4788 阅读 · 2 评论 -
GO进阶(4) 深入Go的内存管理
Go语言成为高生产力语言的原因之一自己管理内存:Go抛弃了C/C++中的开发者管理内存的方式,实现了主动申请与主动释放管理,增加了逃逸分析和GC,将开发者从内存管理中释放出来,让开发者有更多的精力去关注软件设计,而不是底层的内存问题。这篇文章采用层层递进的方式,依次会介绍关于存储的基本知识,Go内存管理的 “前辈” TCMalloc,然后是Go的内存管理和分配,最后是总结。GO应用程序的内存一般也会分成堆区和栈区,程序在运行期间可以主动从堆区申请内存空间,这些内存由内存分配器分配并由垃圾收集器负责回收。原创 2023-02-26 10:07:30 · 1414 阅读 · 0 评论 -
go进阶(2) -深入理解Channel实现原理
Go的并发模型已经在详细说明。Go的CSP并发模型,是通过goroutine和channel来实现的。channelgoroutinegoroutinechannel是Go提供goroutine间的通信方式,使用channel可以使多个goroutine之间通信。,通过channel传递对象的过程和调用函数时的参数传递行为比较一致,比如也可以传递指针等。channel是类型相关的,一个channel只能传递一种类型的值,这个类型需要在声 明channel时指定。原创 2023-02-20 23:34:15 · 2161 阅读 · 0 评论 -
go进阶(1) -深入浅出goroutine并发运行调度机制
并发指的是同时进行多个任务的程序,Web处理请求,读写处理操作,I/O操作都可以充分利用并发增长处理速度,随着网络的普及,并发操作逐渐不可或缺。原创 2023-02-19 05:44:14 · 1646 阅读 · 0 评论