![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
文章平均质量分 50
qq_44662924
这个作者很懒,什么都没留下…
展开
-
golang冒泡、选择、插入、快速、堆、奇偶、归并、希尔 排序思路和代码
冒泡排序算法func BubbleSort(arr []int) { // 最外层的循环表示循环几轮 for i := 0; i < len(arr); i++ { // 内侧是循环几次,注意比较的时候索引越界 // 所以我们在比较的时候只需要走到数组长度的前一个 // 因为内侧比较的时候已经加1 // 所以倒数第二个也会倒数第一个数据作比较 for j := 0; j < len(arr)-1; j++ { // 如果数组内的数据不满足条件就交换 if.原创 2021-12-25 15:50:41 · 234 阅读 · 0 评论 -
从零单排之golang:mutex使用及源码详解
mutex(互斥锁)详解:互斥锁是一个值类型,实现了locker接口,所以使用的时候需要注意参数的传递,它的底层嵌套了linux的信号量(Semaphore),每次操作其实就是PV操作type Mutex struct { state int32 sema uint32}信号量解释通过操作信号量 S 来处理进程间的同步与互斥的问题。S>0:表示有 S 个资源可用;S=0 表示无资源可用;S<0 绝对值表示等待队列或链表中的进程个数。信号量 S 的初.原创 2021-12-21 02:30:43 · 185 阅读 · 0 评论 -
从零单排之golang:channel使用及源码详解
channel 的特性:不要通过共享内存来通信,而要通过通信来实现内存共享1. channel是一个先进先出的队列,go语言提倡使用管道来来通信2. channel在协程间通信是安全的,因为chan的底层数据结构维护一个互斥锁,在读取或者写入资源前会先获取锁3. channel分为有缓存和无缓存的管道:有缓存的管道数据写满后阻塞管道,直到有其他的协程读取管道内的数据,无缓存的管道必须有其他的协程先读取,因为无缓存的管道写入一个数据就把程序永远的阻塞住了,这时候就会产生一个死锁,无论有缓冲还是无缓冲.原创 2021-12-21 02:11:37 · 202 阅读 · 0 评论 -
gin + swagger 生成api接口文档及错误处理
gin swagger原创 2021-12-20 17:52:25 · 1136 阅读 · 0 评论