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

    简介

    原子操作用于执行轻量级、仅执行一次的操作,例如修改计数器、有条件的增加值、设置位等。原子操作可以确保操作的串行化,不再需要锁进行并发访问保护。原子操作的具体实现取决于体系架构。
    

    为了在释放内核网络缓冲区(称为 skbuff)之前检查是否还有余留的数据引用,定义于 net/core/skbuff.c 文件中 skb_relerse_data( ) 函数将进行如下操作:

    当 skb_release_data( ) 执行的时候,另一个调用 skbuff_clone( ) (也在 net/core/skbuff.c 文件中定义)的执行单元也许在同步地增加数据引用计数值:

    原子操作的使用将确保数据引用计数不会被这两个执行单元“蹂躏”。它也消除了使用锁去保护单一整型变量的争论。

    内核也支持 set_bit( )、clear_bit( ) 和 test_and_set_bit( ) 操作,它们可用于原子地进行位修改。查看 include/"asm-your-arch"/atomic.h 文件可以看出你所在体系架构所支持的原子操作。

  • 相关阅读:
    很好的学习idea工具的教程
    事件绑定
    接口出现问题
    IDEA快捷方式
    源代码编译安装Python3.5.2
    CentOS7使用无线网卡
    MySql5.7.12设置log-bin
    报表传递参数控制数据权限
    python将png转为pkm
    WebGL纹理详解——压缩纹理的使用
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/8847888.html
Copyright © 2011-2022 走看看