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

北京营销网站制作网站建设模板平台

北京营销网站制作,网站建设模板平台,湖北工程建设总承包有限公司网站,尚海整装和沪佳哪个好原子内存操作提供了实现其他同步原语所需的低级基础。一般来说,你可以用互斥体和通道替换并发算法的所有原子操作。然而,它们是有趣且有时令人困惑的结构,应该深入了解它们是如何工作的。如果你能够谨慎地使用它们,那么它们完全可以成为代码优化的好工具,而不会增加复杂性…原子内存操作提供了实现其他同步原语所需的低级基础。一般来说,你可以用互斥体和通道替换并发算法的所有原子操作。然而,它们是有趣且有时令人困惑的结构,应该深入了解它们是如何工作的。如果你能够谨慎地使用它们,那么它们完全可以成为代码优化的好工具,而不会增加复杂性。 1. 原子内存操作的内存保证 为什么我们需要单独的函数来进行原子内存操作?如果我们写入一个变量,其大小小于或等于机器字长( 现代计算机的机器字长一般都 8 位的整数倍,如 8 位、16 位等,这是由 int 类型定义的东西),例如 a = 1 ,这不就是原子的吗? Go 内存模型实际上保证了写操作是原子的,但是它并不能保证其他 goroutine 何时会看到该写操作的效果。 让我们仔细分析这句话的含义。第一层意思是说,如果你从一个 goroutine 中写入与机器字长(即int) 大小相同的共享内存位置并从另一个 goroutine 中读取它,那么即使存在竞争,你也不会观察到写入操作之前的值或写入操作之后的值(并非所有语言都如此)。这意味着,如果写操作大于机器字长,那么读取该值的 goroutine 可能会看到底层对象处于不一致的状态。例如,string 值包括两个值:指向底层数组的指针和字符串长度。对这些单独的写入操作是原子的,但快速读取操作可能会读取带有 nil 数组但长度非零的字符串。 这句话的第二层意思是说,编译器可能优化或重新排序代码,或者硬件可能乱序执行内存操作,从而使另一个 goroutine 在预期时间无法看到写入操作的效果。说明这一点的标准示例就是以下内存竞争: package mainfunc main() {var str stringvar done boolgo func() {str = "Done!"done = true}()for !done {}fmt.Println(str) }这里就存在内存竞争,因为 str 变量和 done 变量在一个 goroutine 中被写入并在另一个 goroutine 中被读取,但没有显式同步。 该程序有多种可能的结果: 它可以输出 Done ! 。它可以
http://www.hkea.cn/news/14476830/

相关文章:

  • 做网站放什么软件宁波seo优化公司排名
  • 从零开始建设网站中小学生教育网站建设方案
  • i岗网站建设电商小程序开发需要多少钱
  • 云建网站网址电子工程网络
  • 苏州网站开发公司哪里济南兴田德润简介郑州有没有厉害的seo
  • 网站建设及维护价钱网站开发及建设赔偿条款
  • 楼梯 技术支持 东莞网站建设通过页面wordpress文件位置
  • 网站浮动窗口怎么设置宝塔怎么做网站的301跳转
  • 南宁市住房和城乡建设部网站网站js下载
  • 安徽网站建设哪家好网站建设域名多少钱
  • 网络在线培训网站建设方案查询wordpress主题
  • 副食店年报在哪个网站做网易企业邮箱客户端
  • 微信公众号可以做什么沈阳网站推广优化排名公司
  • 做逆战网站的名字吗wordpress分类目录默认模版
  • 可视化网站建设软件国内有没有开源的wordpress主题网
  • 网站建设哪家乱起封神是那个网站开发的
  • qq是哪款软件开发的网站seo诊断技巧
  • dedecms确定网站风格工程建设最好的网站
  • 做我的世界壁纸的网站福州哪家网站制作设计高端还实惠
  • 购物网站可行性分析报告进博会上海
  • 网站开发终止协议书云主机做网站
  • 在建设局网站备案怎么弄电商网络销售好不好做
  • 韶关做网站邮箱验证wordpress
  • 英文网站设计方案物流信息平台
  • 现代教育网站开发项目的研究建设网站为网站网站做广告
  • 成都网站开发建设推广重庆网站建设网站
  • 南开网站建设优化seo做网站的实验报告
  • 手机可以做3d动漫视频网站淘宝内部优惠券网站怎样做的
  • 计算机网站建设与开发html代码大全网站推荐
  • wordpress安装权限设置方法seo标题关键词优化