首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
洛_
掘友等级
研发工程师
|
字节跳动 | 华为
生命在于体验、求真、探索
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
36
文章 36
沸点 0
赞
36
返回
|
搜索文章
最新
热门
并发编程(八) - Pool: 池化技术
sync.pool 巧妙的利用 GMP 调度模型和无锁队列来实现对象池。需要注意的点是对于不使用的对象,在两个 GC 周期后将被回收。池化技术是一种很常见的优化技术。
并发编程(七) - Map: 并发安全的哈希表
map 是我们最常使用的数据结构,用于快速查找键值对。然而,在 go 中内置的 map 并不是并发安全的。并发写还会导致 panic。
并发编程(六) - Once: 只执行一次的操作
Once 是一个很简单但却非常实用的工具类。通常用来解决并发场景下 initOnce 的问题。OnceFunc 和 Once 其实是相互补充,核心区别就开如何对 panic 进行处理。
并发编程(五) - RWMutex: 读写锁
对于互斥的场景,使用 Mutex 肯定没有任何问题,它保证了对应的操作在任何时刻只能被一个 goroutine 所执行。然而对于读多写少的场景,每次操作都互斥显然成本是有点高的。
并发编程(四) - WaitGroup 协同控制
WaitGroup 协同控制工具。主要使用场景是等待多个 gotoutine 完成任务之后执行其他操作。在使用时需要注意要让 Add 方法在 Wait 之前执行,同时避免并发执行的场景。
并发编程(三) - Sem 信号量
信号量最初由荷兰计算机科学家 Dijkstra 在 1965 年提出,它是一种用于控制并发访问共享资源的机制。
并发编程(二) - Mutex 互斥锁
Mutex(Mutual exclusion) 又叫互斥锁,用于保护临界区,防止多个 goroutine 同时访问临界区。
并发编程(一) - atomic 原子操作
多核处理器的出现解决了单核处理器在性能提升上的瓶颈问题,通过在一个芯片上集成多个处理器核心,可以提供更高的计算性能。然而,多核处理器的引入也带来了新的问题:数据竞争。
六、错误处理
在 rust 中,将错误类型分为可恢复错误和不可恢复错误。可恢复错误:通常表示业务预期内的错误,可以重试解决,例如调用下游超时。不可恢复错误:程序也不知道要怎么处理,例如数组访问越界。
五、复合类型
复合类型是对标量类型的组合,从而表达丰富的业务逻辑。这一章,主要介绍了 rsut 支持的的复合类型,并介绍枚举的强大用法。
下一页
个人成就
文章被点赞
150
文章被阅读
33,061
掘力值
1,571
关注了
0
关注者
32
收藏集
0
关注标签
4
加入于
2020-05-28