自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 Go语言高并发系列三:context

上一篇文章《Go语言高并发系列二:Go语言并发基础》介绍了channel、sync包,用于并发控制。这篇文章我们来学习一下context。context是什么Go 1.7标准库引入了context。context可以用来在goroutine之间传递上下文信息,包含:取消信号,超时信号,截止信号,k-v数据等。相同的context可以传递给多个goroutine,context是goroutine安全的。background、todo可以创建一个contextWithDeadline、WithT

2022-05-19 10:03:48 279

原创 Go语言高并发系列二:Go语言并发基础

上一篇文章《Go语言高并发系列一:基础理论》介绍了进程、线程、协程各个级别的并发模式和GPM调度器,我们知道了Go语言并发的底层思想。这篇文章我们来更深入的学习Go语言的并发相关内容,相关知识点会比较多,所以本文会稍稍较长。channel什么是channel?channel在goroutine之间架起管道,实现goroutine间的同步和通信。因为Go语言的并发模型是CSP,提倡通过通信来共享内存,而不是通过共享内存实现通信。可以说channel就是goroutine间的通信机制。channel

2022-04-19 14:36:31 555

原创 Go语言高并发系列一:基础理论

Go语言的一个核心优势就是它的并发能力。但是在实际工作中,有很多小伙伴还不能纯熟的掌握Go语言的并发和goroutine的控制,导致有时候会出现一些性能问题和严重的bug。所以我准备写四篇文章来系统的整理一下Go语言并发相关的知识,自己复习的同时,也可以给公司的其他小伙伴巩固一下,顺便介绍一下我封装的一些并发控制器,方便其他小伙伴使用。闲话不多说了,下面进入正题。我打算写总共四篇文章来梳理Go语言并发的核心知识:基础理论goroutine基础context并发模式进程进程的定义进程是

2022-04-15 10:43:28 1541

原创 在分布式场景下,生成唯一ID的几种方式

在复杂分布式系统和庞大数据量的场景下,一般需要对大量数据进行唯一标识。 本文介绍了5种获取唯一ID的方式。我最后选用的ksuid算法应用在实际项目中。

2022-04-07 16:43:35 2363

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除