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

律师做网站推广有用吗宁津 做网站

律师做网站推广有用吗,宁津 做网站,网站开发需要的准备,官网百度sync.Once 是 Go 语言标准库中的一个结构体,它的作用是确保某个操作在全局范围内只被执行一次。这对于实现单例模式或需要一次性初始化资源的场景非常有用。 典型用法 sync.Once 提供了一个方法 Do(f func()),该方法接收一个没有参数和返回值的函数 f …

sync.Once 是 Go 语言标准库中的一个结构体,它的作用是确保某个操作在全局范围内只被执行一次。这对于实现单例模式或需要一次性初始化资源的场景非常有用。

典型用法

sync.Once 提供了一个方法 Do(f func()),该方法接收一个没有参数和返回值的函数 f 作为参数。无论 Do 方法被调用多少次,函数 f 只会被执行一次。

var once sync.Oncefunc setup() {// 初始化操作,只会执行一次
}func main() {// 即使在多线程环境下,setup函数也只会被执行一次once.Do(setup)once.Do(setup) // 这次调用不会执行setup
}

多CPU下跑 - 示例

依然只执行一次

package mainimport ("fmt""runtime""sync"
)var once sync.Once
var wg sync.WaitGroupfunc setup() {// 初始化操作,只会执行一次fmt.Println("init")
}func main() {// 设置GOMAXPROCS为机器上的CPU核心数// 让协程同时跑在多个CPU上numCPU := runtime.NumCPU()runtime.GOMAXPROCS(numCPU)fmt.Printf("Running with %d CPUs\n", numCPU)// 即使在多核CPU下的多协程环境下,setup函数也只会被执行一次for i := 0; i < 1000; i++ {wg.Add(1)go func(i int) {defer wg.Done()once.Do(setup)fmt.Printf("Running in goroutine %d\n", i)}(i)}wg.Wait()fmt.Println("Done")
}

原理

sync.Once 的实现原理基于 Go 语言的内存模型和同步原语,主要通过两个字段控制:一个是 done,用于标记函数 f 是否已经执行过;另一个是互斥锁 m,用于在多个 goroutine 同时调用 Do 方法时保证只有一个能执行函数 f

  1. Do 方法第一次被调用时,done 字段为 0,表示函数 f 还没有执行。
  2. Do 方法会先检查 done 字段,如果 f 已经执行(done 不为 0),则直接返回。
  3. 如果 f 还没有执行,Do 方法会加锁并再次检查 done 字段,以防在等待锁的过程中 f 被执行。
  4. 如果 f 确实还没有执行,Do 方法会执行函数 f,然后将 done 设置为 1 并释放锁。

这种设计确保了即使在高并发的情况下,函数 f 也只会被执行一次,同时避免了不必要的加锁操作,提高了效率。

http://www.yayakq.cn/news/594920/

相关文章:

  • 流量卡网站深圳网站建设服务商哪些好?
  • 宿城区建设局网站东莞seo技术培训
  • 免费做网站软件2003企业管理网站
  • iis网站模板wordpress怎么改密码
  • 免费做网站的网址有哪些长沙网络推广代理
  • wps网站超链接怎么做零购物网站怎么建设
  • 网站建设中服务器的搭建方式兖州网站建设推广
  • html5手机网站开发环境做组织架构图的网站
  • 北沙滩网站建设wordpress编辑框
  • 沧州*网站建设wordpress 空两格
  • 做一个企业网站要多久成全视频免费观看在线看游戏
  • 公司网站首页设计构想2015做哪些网站能致富
  • 广西金水建设开发有限公司网站凡科网小程序制作教程
  • 做设计比较好的网站wordpress 云储存插件
  • 全国兼职网站建设保姆seo教程
  • 网站的建设目标是什么意思做透水砖的网站
  • 大丰做网站哪家最好杭州网站建设 杭州app
  • 北京企业建站模板html代码编写
  • php音乐外链网站源码wordpress 调用导航栏
  • 怎么做微帮网站wordpress文章排序id
  • wordpress前端找回密码seo常见优化技术
  • 如何做国外的社交网站摄影网站开发背景
  • 做网站用到什么技术网页设计代码html作品展示
  • 网站开发技术服务费合同wordpress带会员主题
  • 专业做调查的网站免费入驻的外贸平台
  • asp.ney旅游信息网站下载 简洁xampp配置wordpress
  • 做生蚝的网站园林设计公司
  • 贵阳市建设厅网站软文有哪些发布平台
  • 牡丹江建设行业协会网站越南网站怎么做
  • php网站开发实例教程第七章网站的建设和设计方案