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

企业网站的内容选题来源天猫商城

企业网站的内容选题来源,天猫商城,云呼叫中心系统 免费,做游戏推广怎么找客户GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Http) 11、GO学习之 微框架(Gin) 12、GO学习之 数据库(mysql) 13、GO学习之 数据库(Redis) 14、GO学习之 搜索引擎(ElasticSearch) 15、GO学习之 消息队列(Kafka) 16、GO学习之 远程过程调用(RPC) 17、GO学习之 goroutine的调度原理 18、GO学习之 通道(nil Channel妙用) 19、GO学习之 同步操作sync包 20、GO学习之 互斥锁、读写锁该如何取舍 21、GO学习之 条件变量 sync.Cond 22、GO学习之 单例模式 sync.Once 文章目录 GO系列前言sync.Once 如何使用 前言 按照公司目前的任务go 学习是必经之路了虽然行业卷不过技多不压身依旧努力 那sync.Once又是什么呢某个 goroutine 只需要且只能执行一次到目前为止我们知道程序运行期间只被执行一次的就是每个包的 init 函数sync包也提供了这样一种更灵活的机制可以保证 任意一个函数 在程序运行期间只被执行一次就是 sync.Once了。 sync.Once 如何使用 在 JAVA 开发中Spring 框架使用了 单例模式 来创建实体 Bean我们在开发中也是多用单例模式来避免实例的重复创建。 在 Go 标准库中sync.Once 的 “仅仅执行一次” 的特性被多用于初始化操作或者是资源清理的过程中以避免重复执行导致性能不是最佳。 sync.Once 的语义十分适合实现单例模式singleton模式并且实现起来也和简单如下获取实例的例子 package mainimport (logsynctime )// 定义一个结构体对象 type Entity struct{}var once sync.Once// 声明一个接口实例用于存放实例 var instance *Entityfunc GetFun(id int) *Entity {// 延迟获取异常信息defer func() {e : recover()if e ! nil {log.Printf(goroutine %d catch a panic: %s \n, id, e)}}()log.Printf(goroutine %d start run... \n, id)// once.Do 真正的执行创建实体操作once.Do(func() {instance Entity{}time.Sleep(3 * time.Second)log.Printf(goroutine %d create instance : %p\n, id, instance)panic(success to create a instance)})return instance }func main() {var wg sync.WaitGroupfor i : 0; i 5; i {wg.Add(1)go func(i int) {inst : GetFun(i)log.Printf(goroutine %d get a instance: %p, i, inst)wg.Done()}(i 1)}time.Sleep(5 * time.Second)inst : GetFun(0)log.Printf(goroutine %d get a instance: %p, 0, inst)wg.Wait()log.Printf(all goroutine done \n) }运行结果 PS D:\workspaceGo\src\sync go run .\sync_once_main.go 2023/12/02 16:17:04 goroutine 5 start run... 2023/12/02 16:17:04 goroutine 2 start run... 2023/12/02 16:17:04 goroutine 1 start run... 2023/12/02 16:17:04 goroutine 3 start run... 2023/12/02 16:17:04 goroutine 4 start run... 2023/12/02 16:17:07 goroutine 5 create instance : 0xa477c0 2023/12/02 16:17:07 goroutine 5 catch a panic: success to create a instance 2023/12/02 16:17:07 goroutine 5 get a instance: 0x0 2023/12/02 16:17:07 goroutine 3 get a instance: 0xa477c0 2023/12/02 16:17:07 goroutine 2 get a instance: 0xa477c0 2023/12/02 16:17:07 goroutine 4 get a instance: 0xa477c0 2023/12/02 16:17:07 goroutine 1 get a instance: 0xa477c0 2023/12/02 16:17:09 goroutine 0 start run... 2023/12/02 16:17:09 goroutine 0 get a instance: 0xa477c0 2023/12/02 16:17:09 all goroutine done从运行结果中我们可以观察到sync.Do 会等待 func() 执行完毕才返回在这期间其他的执行 once.Do 函数的 goroutine(如上述例子的 goroutine 1 ~ 4) 将会阻塞等待。 等 goroutine 5 的 sync.Do 执行完后其他的 goroutine 在调用 sync.Do 时将不再执行里面的 func() 并立即返回如 goroutine 0。 我们还可以观察到即便在函数 func() 中出现 panic, sync.Once 依旧认为 once.Do 执行完毕其他 goroutine 调用 once.Do 将不再执行 func() 。 现阶段还是对 Go 语言的学习阶段想必有一些地方考虑的不全面本文示例全部是亲自手敲代码并且执行通过。 如有问题还请指教。 评论去告诉我哦一起学习一起进步
http://www.dnsts.com.cn/news/229910.html

相关文章:

  • 浙江建设监理协会官方网站什么是软件定制开发
  • 潍坊做网站的企业网站服务器能更换吗
  • 做视频资源网站有哪些内容wordpress视频播放代码
  • 优秀网站开发wordpress 只有英文版
  • 云南餐饮网站建设wordpress主题white
  • 建站网站哪个最好wordpress 修改数据库
  • 公司网站维护与更新图片在线编辑器免费
  • 免版权图片网站做流量网站吗
  • 宁波高端网站建设联系方式服务好的成都网站建设
  • 制作网站用的域名网站建设与推广是什么意思
  • 自己做电影网站需要的成本网站界面设计考试
  • 网站建设流程图visio做项目搭建网站 构建数据库
  • 网站建设带数据库模板国外室内设计专业大学排名
  • 云南网站建设公司有哪些网站运营存在的问题
  • 来个网站吧好人一生平安百度贴吧手机能进封禁网站的浏览器
  • 韩国源代码交易网站夺宝网站是怎么做推广的
  • 贵阳建站公司模板做的网站
  • 做网站都需要什么步骤梧州网站优化价格
  • 一建二建报考条件及专业要求网站推广排名优化多少钱
  • 山东省住房城乡建设部网站首页linux系统上的wordpress
  • jsp网站开发 英文销售平台排行榜前十名
  • 网站识别手机电脑代码清理网站数据库
  • 网站建设的可行性分析报告公司域名查询
  • 订阅号怎么做免费的视频网站ps做图下载网站有哪些
  • 制作网站费用明细杰诚网站建设
  • 建设银行泰安分行网站郑州网站建设搜q.479185700
  • 做旅游网站基于ssh框架的网站开发流程
  • 网站想建设子站学中文网站
  • 购物网站首页界面设计四川省建设厅官方网站联系电话
  • 做地图的网站扬州广陵区建设局网站