首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
golang
订阅
水木梵华
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 0订阅
Go语言sync包的应用详解
在并发编程中同步原语也就是我们通常说的锁的主要作用是保证多个线程或者 goroutine在访问同一片内存时不会出现混乱的问题。今天的文章里让我们回到应用层,聚焦sync包里这些同步原语的应用场景,同时也会介绍sync包中的Pool和Map的应用场景和使用方法。话不多说,让我们开…
Go语言基础(五)—— 并发编程
相信大家肯定都知道 “线程” 与 “进程” 的概念。 而在Go语言中,“协程”可以理解为更轻量级的线程。 通过调度“协程”就可以把系统Kernel的效率发挥到极致。 通过一张表格,我们来对比一下协程与线程的区别。 Thread vs. Groutine: 线程之间的切换会牵扯到…
由浅入深的来聊聊Golang中select的实现机制
第一个问题好解决,跑一下就是,很明显输出结果肯定不同。 第二个好理解,因为select监听了两个time的通道,所以交替出现。 为了这个问题不得不把select的实现机制走一波,所以有了此文。 2.select底下有多个可执行的case,则随机执行一个。 3.select常配合…
深入理解Golang之context
这篇文章将介绍Golang并发编程中常用到一种编程模式:context。本文将从为什么需要context出发,深入了解context的实现原理,以及了解如何使用context。 在并发程序中,由于超时、取消操作或者一些异常情况,往往需要进行抢占操作或者中断后续操作。熟悉chan…
一看就懂系列之Golang的pprof
这是一篇给网友的文章,正好最近在研究分析golang的性能,我觉得是时候来一个了断了。 Golang自带的一款开箱即用的性能监控和分析工具。 手动调用runtime.StartCPUProfile/runtime.StopCPUProfile等API来进行数据的采集。 优点:灵…
Go正则表达式使用
默认是最短匹配,只要字符串满足条件就返回。 如果没有匹配到,都是返回为nil。 如果需要做最长匹配,调用Longest()函数。 正则表达式功能:匹配(macth),查找(find)和替换(replace)。 存在长度选择的函数,传入<0的数字表示匹配全部。 Compile:返…
Golang中defer的三个实战要点
Golang中的defer是使用频次比较高的,能创造出延迟生效特效的一种方式。 defer也有自己的矫情,需要注意的。 本文将从通过代码的方式来说明defer的三点矫情。 3.defer定义和执行两个步骤,做的事情。 详解:return的时候已经先将返回值给定义下来了,就是0,…
由浅入深聊聊Golang的sync.Pool
今天在思考优化GC的套路,看到了sync.Pool,那就来总结下,希望可以有个了断。 用最通俗的话,讲明白知识。以下知识点10s后即将到来。 Golang在 1.3 版本的时候,在sync包中加入一个新特性:Pool。 简单的说:就是一个临时对象池。 保存和复用临时对象,减少内…
十分钟学会用Go编写Web中间件
中间件(通常)是一小段代码,它们接受一个请求,对其进行处理,每个中间件只处理一件事情,完成后将其传递给另一个中间件或最终处理程序,这样就做到了程序的解耦。如果没有中间件那么我们必须在最终的处理程序中来完成这些处理操作,这无疑会造成处理程序的臃肿和代码复用率不高的问题。中间件的一…
由浅入深聊聊Golang的context
是的,今天本来还想出去玩的。买了动车票,然后又睡过头了。。没办法,可能是天意,只好总结一下golang的context,希望能与context之间做一个了断。 公司里头大家写各种服务,必须需要将Context作为第一个参数,刚开始以为主要用于全链路排查跟踪。但是随着接触多了,原…