Go语言开发基础系列(三十九)go语言web开发之定义接口的三种方式 在使用go语言开发的时候,我们会涉及到像其他语言一样定义一些接口方法,供客户端来进行请求。在java里面我们进行web开发一般都需要使用到spring框架,然后通过@requestmapping这个注解+@contr... Rae /go /2023-06-14 /0 评论 /334 阅读
Go语言开发基础系列(三十八)go语言web工作的基本流程 从本文开始,我们将进入到go语言web服务开发系列,本文的话主要介绍下web开发的主要步骤。这里有经验的开发同学大体都知道,在web服务端开发里面其实主要是包含4个部分,分别是:requestresponse... Rae /go /2023-06-14 /0 评论 /314 阅读
Go语言开发基础系列(三十七)go语言的工作池/线程池 在java语言里面,当我们有子任务需要执行的时候,我们几乎都是把这些子任务放在线程池里面的,而不会每次都new Thread(xxx).start()。那么在go语言里面,我们有没有线程池呢?答案是有的,只是在go语... Rae /go /2023-06-13 /0 评论 /235 阅读
Go语言开发基础系列(三十六)go语言的线程安全的sync.map 在java语言里面,map是线程不安全的,同样的在go语言里面,map也是不安全的。在java语言中为了解决map线程不安全,因此出了一个ConcurrentHashMap,在go语言里面也有对应的这个线程安全的ma... Rae /go /2023-06-13 /0 评论 /218 阅读
Go语言开发基础系列(三十五)go语言的懒加载Sync.Once 在java语言里面我们知道有一个懒加载的机制,也就是这个变量或者类,只有当用的时候才会进行初始化,而不是在最开始就直接初始化把资源给占用了。在go语言中也有懒加载的机制,就是这个:Sync.Once。这个Sync.O... Rae /go /2023-06-13 /0 评论 /401 阅读
Go语言开发基础系列(三十四)go语言的互斥锁Sync.RWMutex 上一篇文章《Go语言开发基础系列(三十三)go语言的互斥锁Sync.Mutex》我们介绍了互次锁:Sync.Mutex,这个锁其实是串行的,也就是写的时候需要串行加锁,读的时候也需要串行加锁,那么我们有没有可以优化的... Rae /go /2023-06-13 /0 评论 /223 阅读
Go语言开发基础系列(三十三)go语言的互斥锁Sync.Mutex 在前面的文章里面,我们介绍了go语言的多线程编程,并且熟悉了waitgroup和channel,这篇文章,我们在多线程的基础上再来介绍下这个锁相关的操作,这里首先介绍第一种互斥锁。这里的互斥锁其实就是go语言里面的S... Rae /go /2023-06-13 /0 评论 /238 阅读
Go语言开发基础系列(三十二)go语言项目的包划分 这篇文章主要是介绍下对应的项目使用到的包,方便后续写代码的时候定义包和引用包。整个项目结构如下:在这里我们根据实际的业务进行划分包,例如这里我们分为client,server,procol。整体的逻辑是client和... Rae /go /2023-06-13 /0 评论 /235 阅读
Go语言开发基础系列(三十一)多线程编程之结果返回 在前面我们介绍了go语言多线程编程的一些核心知识点。这篇文章再来点实用的内容。假设有这样一个场景:主线程需要启动10个子线程,然后这10个子线程执行任务执行完毕之后需要把结果统一返回回来,然后主线程再继续处理结果,试... Rae /go /2023-06-09 /0 评论 /326 阅读
Go语言开发基础系列(三十)go语言并发编程之sync.WaitGroup 在上一篇文章里面我们介绍了chan通道,但是大家发现没有这里通道来解决多线程的话,用起来就比较麻烦,所以官方推荐了一个sync.WaitGroup函数。这个函数我们怎么看待呢?其实就是相当于java里面的CountD... Rae /go /2023-06-09 /0 评论 /290 阅读