Go语言开发基础系列(三十九)go语言web开发之定义接口的三种方式 在使用go语言开发的时候,我们会涉及到像其他语言一样定义一些接口方法,供客户端来进行请求。在java里面我们进行web开发一般都需要使用到spring框架,然后通过@requestmapping这个注解+@contr... Raego2023-06-14918 阅读0 评论
Go语言开发基础系列(三十八)go语言web工作的基本流程 从本文开始,我们将进入到go语言web服务开发系列,本文的话主要介绍下web开发的主要步骤。这里有经验的开发同学大体都知道,在web服务端开发里面其实主要是包含4个部分,分别是:request response co... Raego2023-06-14815 阅读0 评论
Go语言开发基础系列(三十七)go语言的工作池/线程池 在java语言里面,当我们有子任务需要执行的时候,我们几乎都是把这些子任务放在线程池里面的,而不会每次都new Thread(xxx).start()。那么在go语言里面,我们有没有线程池呢?答案是有的,只是在go语... Raego2023-06-13762 阅读0 评论
Go语言开发基础系列(三十六)go语言的线程安全的sync.map 在java语言里面,map是线程不安全的,同样的在go语言里面,map也是不安全的。在java语言中为了解决map线程不安全,因此出了一个ConcurrentHashMap,在go语言里面也有对应的这个线程安全的ma... Raego2023-06-13631 阅读0 评论
热文Go语言开发基础系列(三十五)go语言的懒加载Sync.Once 在java语言里面我们知道有一个懒加载的机制,也就是这个变量或者类,只有当用的时候才会进行初始化,而不是在最开始就直接初始化把资源给占用了。在go语言中也有懒加载的机制,就是这个:Sync.Once。这个Sync.O... Raego2023-06-131236 阅读0 评论
Go语言开发基础系列(三十四)go语言的互斥锁Sync.RWMutex 上一篇文章《Go语言开发基础系列(三十三)go语言的互斥锁Sync.Mutex》我们介绍了互次锁:Sync.Mutex,这个锁其实是串行的,也就是写的时候需要串行加锁,读的时候也需要串行加锁,那么我们有没有可以优化的... Raego2023-06-13674 阅读0 评论
Go语言开发基础系列(三十三)go语言的互斥锁Sync.Mutex 在前面的文章里面,我们介绍了go语言的多线程编程,并且熟悉了waitgroup和channel,这篇文章,我们在多线程的基础上再来介绍下这个锁相关的操作,这里首先介绍第一种互斥锁。这里的互斥锁其实就是go语言里面的S... Raego2023-06-13679 阅读0 评论
Go语言开发基础系列(三十二)go语言项目的包划分 这篇文章主要是介绍下对应的项目使用到的包,方便后续写代码的时候定义包和引用包。整个项目结构如下:在这里我们根据实际的业务进行划分包,例如这里我们分为client,server,procol。整体的逻辑是client和... Raego2023-06-13758 阅读0 评论
热文Go语言开发基础系列(三十一)多线程编程之结果返回 在前面我们介绍了go语言多线程编程的一些核心知识点。这篇文章再来点实用的内容。假设有这样一个场景:主线程需要启动10个子线程,然后这10个子线程执行任务执行完毕之后需要把结果统一返回回来,然后主线程再继续处理结果,试... Raego2023-06-091232 阅读0 评论
热文Go语言开发基础系列(三十)go语言并发编程之sync.WaitGroup 在上一篇文章里面我们介绍了chan通道,但是大家发现没有这里通道来解决多线程的话,用起来就比较麻烦,所以官方推荐了一个sync.WaitGroup函数。这个函数我们怎么看待呢?其实就是相当于java里面的CountD... Raego2023-06-091239 阅读0 评论
热文Go语言开发基础系列(二十九)go语言并发编程之chanel 在上一篇文章《Go语言开发基础系列(二十八)go语言并发编程之go关键词》我们介绍了在go语言中如何进行多线程编程,在最后其实留了一个疑问,就是我们主线程如果销毁了,不管子线程有没有执行完毕,都会直接被销毁。在上一篇... Raego2023-06-091186 阅读0 评论
热文Go语言开发基础系列(二十八)go语言并发编程之go关键词 在java里面我们会涉及到多线程编程的需求,下面首先我们使用java语言来定义一个多线程的任务,首先定义一个任务:package com.test; public class TestTask implements ... Raego2023-06-091176 阅读0 评论
热文Go语言开发基础系列(二十七)日志logger输出 在java语言里面我们经常会涉及到使用log4j来输出日志,这样子在线上项目运行的时候,日志直接打印到日志文件里面,然后通过ELK进行收集,最后在kibana里面查看日志即可。在go语言里面其实我们也会有这个需求,所... Raego2023-06-091087 阅读0 评论
Go语言开发基础系列(二十六)函数重载 在java语言中,有一个叫做多态的概念,也就是一个方法可以接受任意类型的参数,下面我们使用java语言列举下这个多态的样例:package com.test.inter; public class StudentUt... Raego2023-06-08793 阅读0 评论
Go语言开发基础系列(二十五)变长参数函数 在go语言里面还有一个知识点就是变长参数函数,这个变长参数函数是什么意思呢?其实就是这里传递的参数没有固定数量,而且无论传递多少参数都可以,例如我们常用的fmt.Println()就是一个变长参数函数,如下图所示:后... Raego2023-06-08715 阅读0 评论