
Golang
文章平均质量分 84
年轻的少年 Let's go
了 凡
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GO并发编程方面的一些常见面试问题
一些并发编程方面的知识讲解原创 2023-03-13 16:13:50 · 691 阅读 · 1 评论 -
Go语言基础十三连问(底部有资料免费送)
针对一些golang常见的面试问题做一些整理和解答原创 2023-03-08 21:10:06 · 640 阅读 · 0 评论 -
协程的简单操作,你都知道哪些?Golang如何实现协程交替打印?
对于并发的概念,我们都清楚为了合理利用CPU的执行效率,我们选择当一个事务或多个事务执行时交替执行对于当下的计算机执行是很快的并且是对用户无感的,所以我们往往采用极少的资源执行更多事情。假设目前需要执行两个协程,一个协程来执行字母,一个协程执行数字,让两个协程进行交替打印如何实现?又或者如何使用大量的多个协程来交替的执行从一数到五万这样的大任务呢?原创 2022-10-26 09:43:11 · 1224 阅读 · 2 评论 -
二叉树的四种遍历方式以及中序后序、前序中序、前序后序、层序创建二叉树【专为力扣刷题而打造】
这里三种遍历方式不用过多介绍,相信学过数据结构的人都可以轻松使用递归方式进行遍历,非递归方式思想也是一致的。根据前序中序、中序后序、前序后序均参考力扣题解所写,只有层序遍历是为了再力扣解题不方便所以才选择在本地解题,但是本地解题不能进行测试,使用其他三种创建方式又过于麻烦,所以想使用层序创建二叉树,思维比较简单供大家参考,有问题可以及时讨论。............原创 2022-06-29 15:14:43 · 563 阅读 · 3 评论 -
【并发编程】如何用 Channel 解决并发问题?
在Go语言基础中应该就学过Channel,那个时候应该都认为只是一个基础类型,是一个管道一样类似的东西,方便快速读写操作,但是Channel在并发中扮演什么角色呢?原创 2022-02-15 22:06:49 · 1437 阅读 · 7 评论 -
【并发编程】atomic 如何保证原子操作?分别用那几个方法?
之前学习了一些并发原语,已经认为差不多可以应对很多场景了,但是为什么还要学习原子操作呢?原来,在一些场景中,使用并发原语可能更加复杂,为了更轻松地实现底层的优化。原创 2022-01-29 17:18:14 · 2297 阅读 · 0 评论 -
【并发编程】Context 基本用法和如何实现
上下文(Context)在实际开发场景中,在API之间或者方法调用之间,所传递的除了业务参数之外的额外信息。原创 2022-01-17 20:13:22 · 2646 阅读 · 0 评论 -
【并发编程】Pool 基本用法和如何实现
博主介绍:– 我是了 凡 微信公众号【了凡银河系】期待你的关注。未来大家一起加油啊~前言Go是一个自动垃圾回收的编程语言,采用三色并发标记算法标记对象并回收,所以我们一般都是想用就用,没有考虑如何提高性能的问题。但是,如果想要使用Go开发一个高性能的应用程序的话,就必须考虑垃圾回收给性能带来的影响。但是具体都带来什么影响呢?Go的自动垃圾回收机制有一个STW(stop-the-world,程序暂停)的时间,还有另一个耗时的问题,就是在大量的创建在堆上的对象,也会影响垃圾回收标记的时间。一.原创 2022-01-16 20:09:23 · 1110 阅读 · 0 评论 -
【并发编程】map 基本用法和常见错误以及如何实现线程安全的map类型
博主介绍:– 我是了 凡 微信公众号【了凡银河系】期待你的关注。未来大家一起加油啊~前言哈希表介绍哈希表(Hash Table)这个数据结构,在Go语言基础的时候就已经涉及过了。实现的就是key-value直接的映射关系,主要提供的方法包括Add、Lookup、Delete等。因为这种数据结构是一个基础的数据结构,每个key都会有一个唯一的索引值,通过索引可以很快找到对应的值,所以使用哈希表进行数据的插入和读取都是很快的。Go语言本身就内建了这样一个数据结构,也就是map数据类型。.原创 2021-11-25 19:50:18 · 1750 阅读 · 2 评论 -
【并发编程】Once 基本用法和如何实现以及常见错误
博主介绍:– 我是了 凡 微信公众号【了凡银河系】期待你的关注。未来大家一起加油啊~前言文章目录前言Once是什么能做什么?Once基础用法以及使用场景总结Once如何实现使用Once的错误第一种:死锁第二种: 未初始化总结Once是什么能做什么?Once可以用来执行且仅仅执行一次动作,常常用于单例对象的初始化场景。初始化单例资源有很多方法,比如定义package级别的变量,这样程序在启动的时候就可以初始化:package abcimport timevar startT.原创 2021-11-14 07:30:00 · 1649 阅读 · 4 评论 -
【并发编程】Cond 基本用法和如何实现以及常见错误
golang中的sync包里cond文件进行详解原创 2021-11-12 07:30:00 · 5928 阅读 · 5 评论 -
【并发编程】WaitGroup 基本用法和如何实现以及常见错误
我是了 凡,微信公众号【了凡银河系】期待你的关注,内有资源相送。未来大家一起加油啊~前言文章目录前言WaitGroup简单介绍WaitGroup的基本用法WaitGroup的实现Add 实现过程Wait 实现过程使用WaitGroup时的常见错误常见问题一:计数器设置为负值常见问题二:不期望的Add时机常见问题三:前一个Wait还没有结束就重用WaitGroupnoCopy:辅助vet检查WaitGroup简单介绍WaitGroup就是package sync用来做任务编排的一个并..原创 2021-11-07 08:29:24 · 5977 阅读 · 2 评论 -
【并发编程】读写锁的实现原理(RWMutex)
博主介绍:– 我是了 凡,喜欢每日在简书上投稿日更的读书感悟笔名:了凡。专注于 Go Web 后端,了解过一些Python、Java、算法、前端等领域。微信公众号【了凡银河系】期待你的关注。未来大家一起加油啊~原创 2021-10-31 11:47:49 · 2151 阅读 · 0 评论 -
【并发编程】Mutex(互斥锁)拓展提高
博主介绍:– 我是了 凡,喜欢每日在简书上投稿日更的读书感悟笔名:了_凡。专注于 Go Web 后端,了解过一些Python、Java、算法、前端等领域。微信公众号【了凡银河系】期待你的关注。未来大家一起加油啊~原创 2021-10-26 14:02:41 · 487 阅读 · 8 评论 -
【并发编程】Mutex (互斥锁)发展分析
博主介绍:– 我是了 凡,喜欢每日在简书上投稿日更的读书感悟笔名:了_凡。专注于 Go Web 后端,了解过一些Python、Java、算法、前端等领域。微信公众号【了凡银河系】期待你的关注。未来大家一起加油啊~原创 2021-10-24 16:38:38 · 541 阅读 · 1 评论 -
【并发编程】并发中互斥锁常见问题总结
博主介绍:– 我是了凡,喜欢每日在简书上投稿日更的读书感悟笔名:了_凡。专注于 Go Web 后端,了解过一些Python、Java、算法、前端等领域。微信公众号【了凡银河系】期待你的关注。未来大家一起加油啊~原创 2021-10-24 08:58:14 · 1507 阅读 · 1 评论 -
数据丢失了?我的一百万数据剩下了三十多万,为什么?【并发问题】
针对于Golang协程方面的学习笔记原创 2021-10-14 07:00:00 · 465 阅读 · 0 评论 -
Go里面居然还有这个方法?太秀了吧
针对于Golang语言中内部提供的一个方法原创 2021-10-12 00:00:00 · 349 阅读 · 3 评论 -
雪花算法如何生成用户ID?有什么高明之处?
一篇关于生成唯一ID的详细解释原创 2021-07-28 15:56:47 · 1176 阅读 · 21 评论 -
【零基础】何为反射和接口?
针对golang的反射和接口进行讲解原创 2021-06-15 11:24:04 · 1077 阅读 · 123 评论 -
程序员初学者必会,你真的知道函数和方法有什么区别?
针对于函数和方法区别问题进行探讨原创 2021-06-09 07:52:38 · 2661 阅读 · 174 评论 -
都学会了结构体,你还不会?
针对golang结构体进行讲解原创 2021-06-05 07:47:34 · 1411 阅读 · 126 评论 -
【零基础】1小时学会跨时代的一门新语言 《建议收藏》
Golang全文讲解,一篇足够原创 2021-06-01 03:45:36 · 3641 阅读 · 173 评论 -
这几个简单的技能能够祝你涨薪2k喔 建议收藏
针对于项目中git提交的流程讲解原创 2021-05-26 11:21:58 · 2037 阅读 · 57 评论 -
【十分钟】零基础让你迅速了解go语言gin框架
golang语言中的gin框架进行简单讲解原创 2021-05-25 17:33:52 · 2016 阅读 · 12 评论 -
sqlx包中的StructScan, SliceScan, MapScan三种扫描方式
第一种Scan如果想要看Scan的话我这里已经写过了 https://blog.youkuaiyun.com/weixin_45765795/article/details/112766580就不在详讲了第二种StructScan通俗的来讲就是放到结构体Struct中的数据的一种扫描方式,在查询你知道具体有多少个数据,只需要将同等数据映射过来的话就用结构体扫描,这个StructScan将扫描整行strucscan将扫描整个行结果,所以如果你不想为整个结果分配结构,使用Queryx并查看sqlx.Rows.S原创 2021-01-23 11:32:43 · 1907 阅读 · 0 评论 -
Go语言中 Scan 与 Scanf 和 Scanln的区别
三种输入函数的区别首先它们都是在fmt包下的三个扫描函数,类似于java中是Scanner一样,在Go语言中使用&取值指针来进行获值第一种:fmt.Scan输入:读取以空白符分割的值返回到地址中进行修改,换行视为空白符返回值:错误处理,返回值中有一个int类型的值是返回正确的数量,有一个err是错误的原因var ( // 定义全局变量 name int age int married int ) ag1, err := fmt.Scan(&原创 2021-01-18 11:36:45 · 4965 阅读 · 1 评论 -
Go语言 统计一个文件中每个字符串出现的次数
统计一个文件中每个字符串出现的次数func main() { s1, err := ioutil.ReadFile("myDemo/ZinxV0.1/hello") fmt.Println(string(s1)) var valueMap = make(map[string]int) s2 := strings.Split(string(s1)," ") for _, r := range s2{ valueMap[r] ++ } fmt.Println(valueMap)}pr原创 2021-01-11 22:01:12 · 1239 阅读 · 0 评论 -
Go语言 找出数组中和为指定值的两个元素的下标,比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)
找出数组中和为指定值的两个元素的下标,比如从数组[1, 3, 5, 7, 8]中找出和为8的两个元素的下标分别为(0,3)和(1,2)。var num = []int {1, 3, 5, 7, 8} sum := 8 for i := 0; i < len(num); i ++ { for j := i; j < len(num); j ++ { if num[i] + num[j] == sum { fmt.Println(i, j) } } }...原创 2021-01-11 11:49:13 · 1312 阅读 · 3 评论 -
Go语言 编写代码统计出字符串中汉字的数量
编写代码统计出字符串"hello沙河小王子"中汉字的数量。a := 0 s1 := "hello沙河小王子" for _, i := range s1 { if i < 'z' { a ++ } } fmt.Println(a)原创 2021-01-11 11:19:13 · 1236 阅读 · 8 评论 -
解决使用IDE Run运行出错package pack/test is not in GOROOT (/usr/local/go/src/pack/test)
首先先讲一下包包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt、os、io等。我们还可以根据自己的需要创建自己的包。一个包可以简单理解为一个存放.go文件的文件夹。 该文件夹下面的所有go文件都要在代码的第一行添加如下代码,声明该文件归属的包。package 包名注意事项:一个文件夹下面直接包含的文件只能归属一个package,同样一个package的文件不能在多个文件夹下。包名可以不和文件夹的名字一样,包名不能包含 - 符号。包名原创 2020-11-08 11:43:29 · 24400 阅读 · 2 评论