![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang
文章平均质量分 78
自由de单车
90后程序猿
展开
-
【Golang】并发编程之三大问题:原子性、有序性、可见性
在并发编程中会出现的问题可以归结为三大类:有序性、原子性、可见性。原创 2024-04-16 10:58:46 · 1011 阅读 · 0 评论 -
【golang】理解Golang赋值的并发安全性
并发安全就是程序在并发情况下执行的结果是正确的。比如对一个变量简单的自增操作count++,在非并发下很好理解,而在并发情况下却容易出现预期之外的结果,这样的代码就是非并发安全的。因为count++其实是分成两步执行的,当分成了两步执行,那么其他协程就可以趁着这个时间间隙作怪。count:= 1a > 读取count : 1b > 读取count : 1a > 计算count+1 : 2b > 计算count+1 : 2a > 赋值count : 2b > 赋值count : 2。转载 2023-11-29 18:09:33 · 238 阅读 · 0 评论 -
【golang】在单线程程序中,协程并发是安全的吗?
我们都知道,多个线程操作同一个变量,是有线程安全问题的。但是,如果换成是“多个协程操作同一个变量”呢?还会有安全问题吗?原创 2023-09-05 15:50:14 · 386 阅读 · 0 评论 -
【golang】使用通道时需要注意的一些问题
经修改后代码不会再报错了,原因是,【协程1】退出后,虽然【协程2】还在阻塞式地读取空通道,但这时除了【协程2】以外,还有一个【main协程】在运行,所以不会报错。原因是,当【协程1】往通道写入3个数据后,【协程1】就结束运行了,这时【main协程】(是的,main函数也是运行在协程里的)读取出这3个数据后,并没有退出。针对第2点,如果这个空的通道是已关闭的,则不会阻塞,读取到的是这个通道数据类型的零值。通道,发生了阻塞,但这时只有【main协程】在运行了,只剩下一个协程,所以报错。原创 2023-07-03 21:08:54 · 363 阅读 · 0 评论 -
【golang】请求HTTP接口代码示例
在开发过程中,无论是前端还是后端,都经常需要对第三方服务发起HTTP请求获取数据,本文列出一些代码示例用于参考,主要是 GET 请求 和 POST 请求。原创 2023-07-02 22:01:50 · 990 阅读 · 0 评论 -
【golang】如何对struct切片进行去重
编写一个方法,给定一个元素为struct类型的切片,和一个struct的字段名,根据这个字段名对切片进行去重。原创 2023-03-02 16:50:22 · 255 阅读 · 0 评论 -
GoFrame框架model Update方法报“expected N arguments, got N+1”错误
GoFrame框架model Update方法报“expected N arguments, got N+1”错误原创 2023-03-01 16:41:33 · 278 阅读 · 0 评论 -
【golang】学习golang过程中遇到的坑
本文记录我在学习golang过程中遇到的一些容易踩到的坑,以及一些需要注意的问题。持续更新中...原创 2023-02-28 14:36:05 · 326 阅读 · 0 评论 -
golang接口用法之:结构体内嵌匿名接口
当我们需要重写一个 “实现了某个接口的结构体” 的部分方法,而其它方法保持不变 的时候,就需要用到这种用法。原创 2023-02-24 16:49:05 · 1250 阅读 · 0 评论 -
golang值方法和指针方法的区别
golang的值接收者和指针接收者的区别原创 2023-02-22 14:23:56 · 420 阅读 · 0 评论