zoukankan      html  css  js  c++  java
  • 原子操作

    有一种方法论说进行原子操作的时候资源不需要被保护。原子操作就是种因为太小而无法被 电脑中央处理器分开的操作。由于它的小尺寸,它不会有 convention 问题,因为它会被单独 执行而不会在执行中被任务切换。特别地,原子操作就是编译到单个汇编指令的几行源代码。
    典型地,像那些对一个整型或者布尔型域的读写任务被认为是原子操作,由于它们被编译为 单个移动指令(move instruction.)。但是我建议你不要依赖于原子操作,因为在一些情况下, 甚至写一个整型或布尔型都可以牵扯不止单个操作,这取决于数据一开始是从哪里读来的。 还有,这依赖于内部编译器知识,这些知识可能在你不知晓的情况下改变。依赖于在源代码 等级的原子操作会产生那些有未来不确定性,和可能在不同处理器和不同操作系统表现很不 同的代码。
    有许多人为激烈地为原子操作辩护。然而有个显著的即将出现的事情支持了我的观点,那就 是 .net。当你的源代码先被编译为 IL(一种中间语言),然后再在不同的平台上分别编译为机 器语言,老实说,你确定你的那行源代码最终还会是个原子操作吗?
    这是你的选择,并且支持和反对原子操作的人都有很多。依赖原子操作大部分情况下只节省 了几微妙和几字节的代码。我强烈地反对原子操作,因为他们就这么点好处却有巨大的代价。 不要把任何操作当做原子操作来用。

  • 相关阅读:
    VS 2017 没有工具栏中没有Report Viewer的解决方案
    数据类型和C#关系对应
    .NET CORE部署各种问题
    .NET CORE AutoMapper使用
    .NET CORE 配置Swagger文档
    window快捷登陆linux的的设置方式(设置ssh的config配置)
    linux安装mongodb并启动
    windows更改DNS设置
    scp的使用
    浏览器缓存机制
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/5567542.html
Copyright © 2011-2022 走看看