• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






peteryan

 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理
上一页 1 2 3 4 5 6 ··· 12 下一页

2021年10月13日

模块三 GO语言实战与应用-BYTES包与字节串操作(下)
摘要: 在上一篇文章中,我们分享了bytes.Buffer中已读计数的大致功用,并围绕着这个问题做了解析,下面我们来进行相关的知识扩展。 知识扩展 问题 1:bytes.Buffer的扩容策略是怎样的? Buffer值既可以被手动扩容,也可以进行自动扩容。并且,这两种扩容方式的策略是基本一致的。所以,除非我 阅读全文
posted @ 2021-10-13 16:20 lvp 阅读(83) 评论(0) 推荐(0)
 
模块三 GO语言实战与应用-bytes包与字节串操作(上)
摘要: 我相信,经过上一次的学习,你已经对strings.Builder和strings.Reader这两个类型足够熟悉了。 我上次还建议你去自行查阅strings代码包中的其他程序实体。如果你认真去看了,那么肯定会对我们今天要讨论的bytes代码包,有种似曾相识的感觉。 前导内容: bytes.Buffe 阅读全文
posted @ 2021-10-13 16:10 lvp 阅读(170) 评论(0) 推荐(0)
 
模块三 GO语言实战与应用-strings包与字符串操作
摘要: 在上一篇文章中,我介绍了 Go 语言与 Unicode 编码规范、UTF-8 编码格式的渊源及运用。 Go 语言不但拥有可以独立代表 Unicode 字符的类型rune,而且还有可以对字符串值进行 Unicode 字符拆分的for语句。 除此之外,标准库中的unicode包及其子包还提供了很多的函数 阅读全文
posted @ 2021-10-13 11:42 lvp 阅读(135) 评论(0) 推荐(0)
 
模块三 GO语言实战与应用-unicode与字符编码
摘要: 到目前为止,我们已经一起陆陆续续地学完了 Go 语言中那些最重要也最有特色的概念、语法和编程方式。我对于它们非常喜爱,简直可以用如数家珍来形容了。 在开始今天的内容之前,我先来做一个简单的总结。 Go 语言经典知识总结 基于混合线程的并发编程模型自然不必多说。 在数据类型方面有: 基于底层数组的切片 阅读全文
posted @ 2021-10-13 11:29 lvp 阅读(651) 评论(0) 推荐(0)
 
模块三 GO语言实战与应用-并发安全字典SYNC.MAP(下)
摘要: 我们在上一篇文章中谈到了,由于并发安全字典提供的方法涉及的键和值的类型都是interface{},所以我们在调用这些方法的时候,往往还需要对键和值的实际类型进行检查。 这里大致有两个方案。我们上一篇文章中提到了第一种方案,在编码时就完全确定键和值的类型,然后利用 Go 语言的编译器帮我们做检查。 这 阅读全文
posted @ 2021-10-13 11:13 lvp 阅读(113) 评论(0) 推荐(0)
 
模块三 GO语言实战与应用-并发安全字典sync.Map(上)
摘要: 在前面,我几乎已经把 Go 语言自带的同步工具全盘托出了。你是否已经听懂了会用了呢? 无论怎样,我都希望你能够多多练习、多多使用。它们和 Go 语言独有的并发编程方式并不冲突,相反,配合起来使用,绝对能达到“一加一大于二”的效果。 当然了,至于怎样配合就是一门学问了。我在前面已经讲了不少的方法和技巧 阅读全文
posted @ 2021-10-13 11:01 lvp 阅读(104) 评论(0) 推荐(0)
 
模块三 GO语言实战与应用-临时对象池sync.Pool
摘要: 到目前为止,我们已经一起学习了 Go 语言标准库中最重要的那几个同步工具,这包括非常经典的互斥锁、读写锁、条件变量和原子操作,以及 Go 语言特有的几个同步工具: sync/atomic.Value sync.Once sync.WaitGroup context.Context 今天,我们来讲 G 阅读全文
posted @ 2021-10-13 10:35 lvp 阅读(167) 评论(0) 推荐(0)
 
模块三 GO语言实战与应用-context.Context类型
摘要: 在使用WaitGroup值的时候,我们最好用“先统一Add,再并发Done,最后Wait”的标准模式来构建协作流程。 如果在调用该值的Wait方法的同时,为了增大其计数器的值,而并发地调用该值的Add方法,那么就很可能会引发 panic。 这就带来了一个问题,如果我们不能在一开始就确定执行子任务的 阅读全文
posted @ 2021-10-13 10:14 lvp 阅读(183) 评论(0) 推荐(0)
 

2021年5月8日

模块三 GO语言实战与应用-sync.WaitGroup和sync.Once
摘要: 我们在前几次讲的互斥锁、条件变量和原子操作都是最基本重要的同步工具。在 Go 语言中,除了通道之外,它们也算是最为常用的并发安全工具了。 说到通道,不知道你想过没有,之前在一些场合下里,我们使用通道的方式看起来都似乎有些蹩脚。 比如:声明一个通道,使它的容量与我们手动启用的 goroutine 的数 阅读全文
posted @ 2021-05-08 08:00 lvp 阅读(162) 评论(0) 推荐(0)
 
模块三 GO语言实战与应用-原子操作(下)
摘要: 我们接着上一篇文章的内容继续聊,上一篇我们提到了,sync/atomic包中的函数可以做的原子操作有:加法(add)、比较并交换(compare and swap,简称 CAS)、加载(load)、存储(store)和交换(swap)。并且以此衍生出了两个问题。 今天我们继续来看第三个衍生问题: 比 阅读全文
posted @ 2021-05-08 07:32 lvp 阅读(115) 评论(0) 推荐(0)
 
上一页 1 2 3 4 5 6 ··· 12 下一页