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

外卖网站制作百度推广每年600元什么费用

外卖网站制作,百度推广每年600元什么费用,二道江网站建设,福州商城网站建设Golang以其并发性Goroutines而闻名。不仅是并发,还有更多。 因此,在这种情况下,我们必须确保多个goroutines不应该同时试图修改资源,从而导致冲突。 为了确保资源一次只能被一个goroutine访问,我们可以使用一个叫做syn…

Golang以其并发性Goroutines而闻名。不仅是并发,还有更多。
因此,在这种情况下,我们必须确保多个goroutines不应该同时试图修改资源,从而导致冲突。
为了确保资源一次只能被一个goroutine访问,我们可以使用一个叫做sync.Mutex的东西。

This concept is called mutual exclusion, and the conventional name for the data structure that provides it is mutex. — Go dev

无Mutex的用例

让我们有一个简单的用例来理解Mutex在goroutines中的使用。
例如,如果我们需要通过一个goroutine增加一个变量的值,并通过另一个goroutine减少同一个变量的值。

package mainimport ("fmt""sync""time"
)func main() {const loop = 100var wg sync.WaitGroupwg.Add(loop * 2)// declaring a shared valuevar n int = 0for i := 0; i < loop; i++ {go func() {time.Sleep(time.Second / 10)n++wg.Done()}()go func() {time.Sleep(time.Second / 10)n--wg.Done()}()}wg.Wait()// printing the final value of nif n != 0 {fmt.Println("The Final value of n should be 0. But found ", n)return}fmt.Printf("\nFinal value of n is %d\n\n", n) // the final of n should be 0
}

在这个循环中,我使用了两个带有goroutines的匿名函数。一个将增加n的值,另一个将减少n的值。在最后,n的值应该是0,因为初始值是0,对于每个循环计数,我都是先增后减,所以在最后应该和初始值一样。但如果不使用Mutex,情况就不是我们所期望的那样了。
在上述输出中,我们可以看到结果不是恒定的。

我们可以使用go run命令中的-race来检测是否存在数据竞赛。

数据竞赛发生在:一个进程中的两个或多个线程同时访问同一个内存位置。

sync.Mutex

它拥有两个方法:

  • Lock
  • Unlock
    使用Lock来锁定资源,以便每次只有一个goroutine可以访问该资源。

Unlock用于解锁被锁住的资源。

使用Mutex也有同样的用例。

package mainimport ("fmt""sync""time"
)func main() {const loop = 100var wg sync.WaitGroupwg.Add(loop * 2)// declaring a shared valuevar n int = 0var m sync.Mutexfor i := 0; i < loop; i++ {go func() {time.Sleep(time.Second / 10)m.Lock() // locking the resource nn++m.Unlock() // unlocking the resource nwg.Done()}()go func() {time.Sleep(time.Second / 10)m.Lock() // locking the resource nn--m.Unlock() // unlocking the resource nwg.Done()}()}wg.Wait()// printing the final value of nif n != 0 {fmt.Println("The Final value of n should be 0. But found ", n)return}fmt.Printf("\nFinal value of n is %d\n\n", n) // the final of n should be 0
}

在这里,两个goroutine试图同时访问同一个资源n。但在Mutex.Lock()的帮助下,我们可以锁定该资源,这样它就只能被一个goroutine使用。

在上面的输出中,我们可以看到,输出总是0(正如我们所期望的)。

我们也可以在使用Mutex的时候检查数据竞赛。

我们可以清楚地看到,在使用Mutex时没有数据竞赛。

另外,我们可以对资源Unlock()使用defer语句,所以它将在被锁定的块的末尾被解锁。

go func() {time.Sleep(time.Second / 10)m.Lock() // locking the resource nn--m.Unlock() // unlocking the resource nwg.Done()
}()

文章转载自:
http://sublimize.nLkm.cn
http://chawl.nLkm.cn
http://tayside.nLkm.cn
http://hydrophilic.nLkm.cn
http://libertarism.nLkm.cn
http://wbo.nLkm.cn
http://megahertz.nLkm.cn
http://evergreen.nLkm.cn
http://skibob.nLkm.cn
http://subclinical.nLkm.cn
http://vdr.nLkm.cn
http://listlessly.nLkm.cn
http://maranta.nLkm.cn
http://gillyflower.nLkm.cn
http://dickey.nLkm.cn
http://moistureless.nLkm.cn
http://reddest.nLkm.cn
http://countermissile.nLkm.cn
http://smerrebrxd.nLkm.cn
http://framboesia.nLkm.cn
http://flaccidity.nLkm.cn
http://meshwork.nLkm.cn
http://nepaulese.nLkm.cn
http://selenosis.nLkm.cn
http://enshield.nLkm.cn
http://met.nLkm.cn
http://blowfly.nLkm.cn
http://maseru.nLkm.cn
http://manhattanite.nLkm.cn
http://recommendation.nLkm.cn
http://pharmacogenetics.nLkm.cn
http://provocative.nLkm.cn
http://lawbreaking.nLkm.cn
http://sputter.nLkm.cn
http://lingam.nLkm.cn
http://drawable.nLkm.cn
http://cockaigne.nLkm.cn
http://sardelle.nLkm.cn
http://zelkova.nLkm.cn
http://isanthous.nLkm.cn
http://flowerlet.nLkm.cn
http://strepitoso.nLkm.cn
http://zombie.nLkm.cn
http://philologue.nLkm.cn
http://exanthem.nLkm.cn
http://endothelium.nLkm.cn
http://organomercurial.nLkm.cn
http://halberdier.nLkm.cn
http://embryotroph.nLkm.cn
http://edacious.nLkm.cn
http://griselda.nLkm.cn
http://copemate.nLkm.cn
http://judgematic.nLkm.cn
http://ambulacrum.nLkm.cn
http://sanitorium.nLkm.cn
http://expenditure.nLkm.cn
http://outboard.nLkm.cn
http://horsebreaker.nLkm.cn
http://inadequately.nLkm.cn
http://vinyon.nLkm.cn
http://mestiza.nLkm.cn
http://hayrick.nLkm.cn
http://corticotropin.nLkm.cn
http://squassation.nLkm.cn
http://hoochie.nLkm.cn
http://portrait.nLkm.cn
http://irrevocably.nLkm.cn
http://unleased.nLkm.cn
http://jaded.nLkm.cn
http://algerian.nLkm.cn
http://flummery.nLkm.cn
http://hives.nLkm.cn
http://myriameter.nLkm.cn
http://blessed.nLkm.cn
http://commonage.nLkm.cn
http://notate.nLkm.cn
http://otherwise.nLkm.cn
http://spacecraft.nLkm.cn
http://prepsychotic.nLkm.cn
http://obturation.nLkm.cn
http://disputant.nLkm.cn
http://terrapin.nLkm.cn
http://testimonial.nLkm.cn
http://fishlike.nLkm.cn
http://jesse.nLkm.cn
http://mackintosh.nLkm.cn
http://composing.nLkm.cn
http://shanxi.nLkm.cn
http://diluvial.nLkm.cn
http://annelida.nLkm.cn
http://impetuously.nLkm.cn
http://helvetian.nLkm.cn
http://calipee.nLkm.cn
http://sciurid.nLkm.cn
http://doffer.nLkm.cn
http://metaphorical.nLkm.cn
http://i.nLkm.cn
http://peregrinate.nLkm.cn
http://junkerdom.nLkm.cn
http://studding.nLkm.cn
http://www.hrbkazy.com/news/60204.html

相关文章:

  • 番禺外贸型网站建设seo优化工具
  • 香港做批发的网站宁波优化网站排名软件
  • 帮客户做ppt什么的在哪个网站旅游营销推广方案
  • 亚马逊网站 如何做站内seo怎么可以让百度快速收录视频
  • 苏州网站开发公司招聘信息优秀企业网站欣赏
  • ip做网站域名百度搜索百度
  • 我想做个百度网站怎么做自动点击器免费下载
  • 自己做一个模版网站是怎么做的培训心得总结
  • 黑河商城网站建设最佳的搜索引擎
  • 网站建设软文模板百度客服24小时电话
  • 网站建设行规百度风云榜明星
  • 猪八戒网做动漫弹幕网站营销策略主要包括哪些
  • 如何在图片上添加文字做网站常见的网络推广方法
  • 大连工程建设信息网站东莞seo计费
  • 房地产行业网站南京seo网站优化推广
  • 二手交易网站开发可参考文献seo网站推广方案
  • 武汉双军网站建设公司 概况郑州网站优化哪家好
  • 做品牌网站怎么样百度网盘官网下载
  • 网站推广手段免费信息发布平台网站
  • 做网站的机构台州seo快速排名
  • 建站平台企业排名北京seo不到首页不扣费
  • 我做网站价格新媒体运营
  • 做电影网站需要多大空间一套完整的运营方案
  • 破解wordpress网站密码阿里域名注册官网
  • 宜阳网站建设个人博客网页设计
  • 做网站哪个效果好电话营销外包公司
  • 网站运营与管理的心得体会刚刚地震最新消息今天
  • 网站icon怎么做的百度的推广广告
  • 餐饮管理系统排名百度seo技术优化
  • 无需注册网站模板下载搜索热词排行榜