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

科技网站配色方案软文案例大全

科技网站配色方案,软文案例大全,查看公司股票的网站,个人 网站 备案✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/UWz06 📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏…

✍个人博客:Pandaconda-CSDN博客
📣专栏地址:http://t.csdnimg.cn/UWz06
📚专栏简介:在这个专栏中,我将会分享 Golang 面试中常见的面试题给大家~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

91. Go 写锁怎么实现

加写锁

const rwmutexMaxReaders = 1 << 30
func (rw *RWMutex) Lock() {// First, resolve competition with other writers.rw.w.Lock()// Announce to readers there is a pending writer.r := atomic.AddInt32(&rw.readerCount, -rwmutexMaxReaders) + rwmutexMaxReaders// Wait for active readers.if r != 0 && atomic.AddInt32(&rw.readerWait, r) != 0 {runtime_Semacquire(&rw.writerSem)}
}

首先调用互斥锁的 lock,获取到互斥锁之后,如果计算之后当前仍然有其他 goroutine 持有读锁,那么就调用 runtime_SemacquireMutex 休眠当前的 goroutine 等待所有的读操作完成

这里readerCount 原子性加上一个很大的负数,是防止后面的协程能拿到读锁,阻塞读

释放写锁

func (rw *RWMutex) Unlock() {// Announce to readers there is no active writer.r := atomic.AddInt32(&rw.readerCount, rwmutexMaxReaders)// Unblock blocked readers, if any.for i := 0; i < int(r); i++ {runtime_Semrelease(&rw.readerSem, false)}// Allow other writers to proceed.rw.w.Unlock()
}

解锁的操作,会先调用 atomic.AddInt32(&rw.readerCount, rwmutexMaxReaders) 将恢复之前写入的负数,然后根据当前有多少个读操作在等待,循环唤醒

92. Go 读写锁的注意事项以及区别

注意点:

  • 读锁或写锁在 Lock() 之前使用 Unlock() 会导致 panic 异常。
  • 使用 Lock() 加锁后,再次 Lock() 会导致死锁(不支持重入),需 Unlock() 解锁后才能再加锁。
  • 锁定状态与 goroutine 没有关联,一个 goroutine 可以 RLock(Lock),另一个 goroutine 可以 RUnlock(Unlock)。

互斥锁和读写锁的区别:

  • 读写锁区分读者和写者,而互斥锁不区分。
  • 互斥锁同一时间只允许一个线程访问该对象,无论读写;读写锁同一时间内只允许一个写者,但是允许多个读者同时读对象。

93. Go 互斥锁是什么?

Go sync 包提供了两种锁类型:互斥锁 sync.Mutex 和读写互斥锁 sync.RWMutex,都属于悲观锁。

概念:

Mutex是互斥锁,当一个 goroutine 获得了锁后,其他 goroutine 不能获取锁(只能存在一个写者或读者,不能同时读和写)

使用场景:

多个线程同时访问临界区,为保证数据的安全,锁住一些共享资源,以防止并发访问这些共享数据时可能导致的数据不一致问题。

获取锁的线程可以正常访问临界区,未获取到锁的线程等待锁释放后可以尝试获取锁

在这里插入图片描述

http://www.hrbkazy.com/news/48991.html

相关文章:

  • 如何做网站外链优化搜索引擎
  • 深圳营业执照代办seo高级教程
  • 苏州网站排名爱站在线关键词挖掘
  • 潍坊网站建设电话西安seo排名扣费
  • 数据库做网站中央下令全国各地核酸检测
  • 两个域名 两个网站 如何推广自己做的网址如何推广
  • wordpress主题编辑seo流量工具
  • 做公司网站怎么做贴吧推广400一个月
  • 网站推广策划思路与执行重庆百度推广电话
  • wordpress自定义文章添加标签百度seo优化系统
  • 签订网站制作合同注意事项谷歌seo优化中文章
  • 淘宝网站模板是什么做的网络平台怎么推广
  • 深圳做网站好的公司网络营销方式包括哪些
  • 西安关键词优化平台关键词seo排名优化软件
  • 在pc端预览手机网站热点事件营销案例
  • 重庆公共交通最新消息网站seo培训
  • 如何做免费的公司网站聊城优化seo
  • 调教亲妹妹做性奴网站电商seo搜索优化
  • 加快全省政府网站建设网络营销服务的特点
  • 卧龙区网站建设哪家好360公司官网首页
  • 电子税局网站开发服务项目文档个人免费网站申请注册
  • 做一个购物商城网站多少钱适合30岁女人的培训班
  • wordpress暂停网站seo网站优化多少钱
  • 在wordpress文章开头优速网站建设优化seo
  • 景区网站的作用绍兴百度seo
  • 优创智汇高端网站建设电话怎么样网络推广营销技巧
  • 怎么通过局域网建设网站网站建设与管理
  • 共同建设网站心得免费的网站域名查询565wcc
  • 昆明做网站的湖南seo推广
  • 门户类网站费用今日新闻最新10条