使用的 gcache 和 GORM 都是 Goroutine Safe 的,为什么写要加锁呢?

为什么 pipe 的 service 要使用 mutex 加锁

本贴最后更新于 274 天前,其中的信息可能已经时移世改

使用的 gcache 和 GORM 都是 Goroutine Safe 的,为什么写要加锁呢?

  • Pipe

    Pipe 是一款小而美的开源博客平台。如果你不想自己搭建,可以直接使用我们运维的 http://pipe.b3log.org

    102 引用 • 876 回帖 • 264 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    1377 引用 • 9028 回帖 • 574 关注
被采纳的回答
  • 88250

    1. 有一些数据加减操作,不同数据库事务隔离可能不同,加锁可以避免潜在问题
    2. 加锁是在性能需求允许情况下最简单的做法
    3. 没有多进程集群的需求,所以进程内存锁是最简单的实现

    大概就是这样考虑的,主要原因就是怕出错而做的最简化处理。

1 回帖
请输入回帖内容...
  • 88250

    1. 有一些数据加减操作,不同数据库事务隔离可能不同,加锁可以避免潜在问题
    2. 加锁是在性能需求允许情况下最简单的做法
    3. 没有多进程集群的需求,所以进程内存锁是最简单的实现

    大概就是这样考虑的,主要原因就是怕出错而做的最简化处理。