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

网站被墙的原因免费流量平台哪个最好

网站被墙的原因,免费流量平台哪个最好,岳阳网站建设一站式服务,设置网站建设方案文章目录一、什么是原子操作二、为什么需要原子操作三、API一、什么是原子操作 原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断,可以视为最小的操作单元,是在执行的过程中、不会导致对数据的并发访问的、最小操作&#x…

文章目录

  • 一、什么是原子操作
  • 二、为什么需要原子操作
  • 三、API

一、什么是原子操作

原子操作是不可分割的,在执行完毕之前不会被任何其它任务或事件中断,可以视为最小的操作单元,是在执行的过程中、不会导致对数据的并发访问的、最小操作,因此称为原子操作。最简单的原子操作,就是交换一个寄存器和一个内存地址的值,

原子操作,是实现锁机制的基础。mutex,spinlock等,在其底层都有一个关键的原子操作。在编程语言中一般分为两种情况):

  1. 在单线程中, 能够在单条指令中完成的操作都可以认为是" 原子操作",因为中断只能发生于指令之间;
  2. 在多线程中,不能被其它进程(线程)打断的操作就叫原子操作。

二、为什么需要原子操作

在多核处理器的机器上,对于同一个变量值所存在的内存区域可能被多个CPU短时间内同时访问,从而导致该值得不稳定性。例如在多线程中,初始化 i = 0,对于 i++ 这个操作,同时有2个线程对其进行了调用则有可能导致第一个线程用时 i 的值为 2

i++ 的操作分为三步:

  1. 内存访问,读取i变量的值到CPU的寄存器中;
  2. 使寄存器中的值 +1;
  3. 将寄存器中的值写回到内存。

由此可见,i++并不是原子操作,在没有线程保护的多线程处理器中,每一步都有可能被外部中断给打断,从而影响到 i 的值。如果2个线程同时调用了 i++,i 可能直接从 0 变为 2——线程1 在寄存器中使得 i自增1的同时线程2也在做此操作,因此当取出寄存器中i的值到内存时,i 不知不觉被加了2次

三、API


//将value加到*ptr上,结果更新到*ptr,并返回操作之前*ptr的值
type __sync_fetch_and_add (type *ptr, type value, ...) // 从*ptr减去value,结果更新到*ptr,并返回操作之前*ptr的值
type __sync_fetch_and_sub (type *ptr, type value, ...) // 将*ptr与value相或,结果更新到*ptr, 并返回操作之前*ptr的值
type __sync_fetch_and_or (type *ptr, type value, ...) // 将*ptr与value相与,结果更新到*ptr,并返回操作之前*ptr的值
type __sync_fetch_and_and (type *ptr, type value, ...) // 将*ptr与value异或,结果更新到*ptr,并返回操作之前*ptr的值
type __sync_fetch_and_xor (type *ptr, type value, ...) // 将*ptr取反后,与value相与,结果更新到*ptr,并返回操作之前*ptr的值
type __sync_fetch_and_nand (type *ptr, type value, ...) // 将value加到*ptr上,结果更新到*ptr,并返回操作之后新*ptr的值
type __sync_add_and_fetch (type *ptr, type value, ...) // 从*ptr减去value,结果更新到*ptr,并返回操作之后新*ptr的值
type __sync_sub_and_fetch (type *ptr, type value, ...) // 将*ptr与value相或, 结果更新到*ptr,并返回操作之后新*ptr的值
type __sync_or_and_fetch (type *ptr, type value, ...) // 将*ptr与value相与,结果更新到*ptr,并返回操作之后新*ptr的值
type __sync_and_and_fetch (type *ptr, type value, ...) // 将*ptr与value异或,结果更新到*ptr,并返回操作之后新*ptr的值
type __sync_xor_and_fetch (type *ptr, type value, ...) // 将*ptr取反后,与value相与,结果更新到*ptr,并返回操作之后新*ptr的值
type __sync_nand_and_fetch (type *ptr, type value, ...) // 比较*ptr与oldval的值,如果两者相等,则将newval更新到*ptr并返回true
bool __sync_bool_compare_and_swap (type *ptr, type oldval type newval, ...) // 比较*ptr与oldval的值,如果两者相等,则将newval更新到*ptr并返回操作之前*ptr的值
type __sync_val_compare_and_swap (type *ptr, type oldval type newval, ...) 
http://www.yayakq.cn/news/522147/

相关文章:

  • 哪里有做推文的网站网站模板抄袭
  • 农村电子商务网站建设中小型企业网络搭建案例
  • 网站开发框架 开源手机网站seo
  • 贵阳企业自助建站系统专门做宠物食品的网站
  • 网站首页快照不更新做网站推广产品
  • 宁波住房和城乡建设培训网站网站建设与推广培训学校
  • 网站建设定金合同范本合肥关键词快速排名
  • 网站建设代理商电话重庆网站设计软件
  • 新乡做网站的潍坊网站建设推广报价
  • 做网站互联网公司手机logo免费设计软件
  • 网站运营与推广门户网站建设议题汇报材料
  • 做网站必须学php吗网站建设规划书百度文库
  • 什么样的网站不备案网页设计实训报告三个步骤
  • 在一个网站下建设多个子网站旅游网站建设技术有哪些方面
  • 怎么在本机做网站今天重大新闻50字
  • 网站检测ps的logo设计制作
  • 有什么好网站做浏览器主页网站开发人员 怎么保存
  • 网站建设自学建站视频教程东莞网站建设时间
  • 山西建设行政主管部门官方网站个人住房公积金贷款
  • 电子商务企业网站建设前期规划方案域名停域app免费下载
  • asp.net制作的网站开发怎样用自己的电脑做网站
  • 景区智慧旅游网站建设自媒体营销推广
  • 良精企业网站管理系统搜索关键词推荐
  • 最大的做网站公司内蒙古众信国际旅行社电话
  • 綦江建站哪家正规网站开发 php python
  • 网站多少个关键词斗蟋蟀网站建设
  • 室内设计软件大全网站电商seo优化是什么意思
  • 徐州网站无障碍建设上海室内设计公司
  • 找人做网站做小程序动漫制作技术专业
  • 宜春网站建设推广服务器租用