当前位置: 首页 > wzjs >正文

连锁店进销存管理软件seo搜索引擎优化业务

连锁店进销存管理软件,seo搜索引擎优化业务,要服务网站建设,大数据查询文章目录 并发安全性与原子操作读写锁分布式锁 并发安全性与原子操作 普通数据类型在并发读写中是会出现问题的,有时候操作会被吞,导致脏写,比如上面n加了两次应该为2,但是由于并发,n最后还是只加了一次 读写锁 sync.…

文章目录

    • 并发安全性与原子操作
    • 读写锁
    • 分布式锁

并发安全性与原子操作

在这里插入图片描述

  • 普通数据类型在并发读写中是会出现问题的,有时候操作会被吞,导致脏写,比如上面n加了两次应该为2,但是由于并发,n最后还是只加了一次

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

读写锁

  • sync.RWMutex
  • 读锁和写锁之间是互斥的,写锁之间互斥,读锁之间不互斥

在这里插入图片描述

  • 写-写 不可以

在这里插入图片描述

  • 写-读 不可以

在这里插入图片描述

  • 读-读 可以

在这里插入图片描述

  • 读-写 不可以

在这里插入图片描述

  • 释放锁后,就可以上锁成功了

在这里插入图片描述

  • 用锁来保证原子性操作

分布式锁

  • 一般我们在实际中会把go程序部署在多台服务器中同时运行一模一样的代码
  • 但是如果多人同时运行一样的代码,可能会出现问题
  • 分布式锁就是一个全局变量,独立于服务器,谁抢到这个锁谁就可以执行
  • 简单的分布式锁可以借助redis实现,setnx
// 尝试获取锁
result, err := rc.SetNX(context.Background(), "lock:resource1", "clientA", 10*time.Second).Result()
if err != nil {// 处理错误(如连接问题)log.Fatal(err)
}
if result {// 获取锁成功,执行业务逻辑defer rc.Del(context.Background(), "lock:resource1") // 完成后释放锁// ...
} else {// 锁已被其他客户端持有fmt.Println("获取锁失败")
}
  • rc.SetNX 尝试往redis中去写入对应key和value,如果key已经存在,则返回false,如果存在则设置成功返回true
  • cmd.Err() != nil 证明发生异常了,比如服务器突然断开了

在这里插入图片描述

在这里插入图片描述

  • 只有一个上锁成功,只会输出一次上锁成功

在这里插入图片描述

  • 协程0 上锁成功
http://www.dtcms.com/wzjs/121758.html

相关文章:

  • 怎么建动态网站怎样建立一个网络销售平台
  • 泊头网站建设公司seo排名查询工具
  • 企业所得税怎么算公式是什么南京seo推广
  • 宿迁58同城租房网排名优化公司口碑哪家好
  • 定制企业网站开发公司扬州网站推广公司
  • 如何查看一个网站的域名解析北京seo网站优化培训
  • wordpress增加标签页网站优化方案怎么写
  • 不同网站相似的页面百度收录吗百度搜图入口
  • 网站租金可以做办公费吗线上招生引流推广方法
  • 开发网站开票名称是什么网站推广的100种方法
  • 泽成seo网站排名推广策略
  • 湖南省建设工程造价总站网站app怎么开发出来的
  • 开店装修话做那个网站找工人广东公司搜索seo哪家强
  • 网站后台流程图网页设计制作网站素材
  • 怎么查询一个网站有没有做竞价济南seo网站优化
  • 粮食局网站建设方案女生学网络营销这个专业好吗
  • 简要描述网站建设的基本步骤最新中高风险地区名单
  • 一起做网站女装夏季搜狗搜索排名优化
  • 专门做照片的网站百度统计手机app
  • 做微网站 主机 域名北京广告公司
  • 公司想做网站费用要多少钱优化营商环境应当坚持什么原则
  • 北京做冷冻牛羊肉的网站拼多多代运营一般多少钱
  • 政府网站建设文案营销型企业网站的功能
  • 辽宁建设厅网站什么时候换的网店运营工资一般多少
  • 南宁网站建设seoapp注册推广任务平台
  • 梅州网站建设公司seo推广什么意思
  • wordpress幻灯片的调用代码引擎优化seo是什么
  • 铜陵做网站想找搜索引擎优化
  • 如何把自己做的网站 放在网上seo推广是做什么
  • 网站制作推广需要多少钱国外搜索网站排名