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

哈尔滨建设网站哪家专业wordpress 顶部幻灯片

哈尔滨建设网站哪家专业,wordpress 顶部幻灯片,电脑网站转手机版,馀姚网站建设目录 1. 原子操作 2. 锁是干嘛的 3. 锁的实现 1. 原子操作 gcc从4.1.2开始提供了__sync_*系列的build-in函数#xff0c;用于提供加减和逻辑运算的原子操作#xff0c;主要接口的其声明如下#xff1a; type __sync_fetch_and_add (type *ptr, type value, ...): 将valu…目录 1. 原子操作 2. 锁是干嘛的 3. 锁的实现 1. 原子操作 gcc从4.1.2开始提供了__sync_*系列的build-in函数用于提供加减和逻辑运算的原子操作主要接口的其声明如下 type __sync_fetch_and_add (type *ptr, type value, ...): 将value加到ptr上结果更新到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, ...): 将ptr取反后与value相与结果更新到ptr并返回操作之前ptr的值type __sync_add_and_fetch (type *ptr, type value, ...):将value加到ptr上结果更新到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取反后与value相与结果更新到ptr并返回操作之后新ptr的值bool __sync_bool_compare_and_swap (type *ptr, type oldval type newval, ...):比较*ptr与oldval的值如果两者相等则将newval更新到*ptr并返回truetype __sync_val_compare_and_swap (type *ptr, type oldval type newval, ...):比较ptr与oldval的值如果两者相等则将newval更新到ptr并返回操作之前*ptr的值__sync_synchronize (...):发出完整内存栅栏type __sync_lock_test_and_set (type *ptr, type value, ...): 将value写入ptr对ptr加锁并返回操作之前*ptr的值。即try spinlock语义void __sync_lock_release (type *ptr, ...)将0写入到ptr并对ptr解锁。即unlock spinlock语义 2. 锁是干嘛的 锁解决的问题为了并行中的正确性共享数据一致性 多核处理器多个CPU如果同时访问一些共享资源可能会导致数据不一致即共享数据用锁设置成多CPU分时访问。 锁带来的问题并行变串行效率降低 3. 锁的实现 上锁 __sync_lock_test_and_set 通过原子操作赋值也就是锁只能一方获取。 解锁 __sync_lock_release 通过原子操作清0。 锁的操作均是原子操作但是实现锁的功能还需要内存屏蔽功能保证临界区的执行可靠性。某些平台的部分代码 #define SPINLOCK_INIT \{ \0 \}#define CORELOCK_INIT \{ \.lock SPINLOCK_INIT, \.count 0, \.core -1 \}/* Defination of memory barrier macro */ #define mb() \{ \asm volatile(fence :: \: memory); \}#define atomic_set(ptr, val) (*(volatile typeof(*(ptr)) *)(ptr) val) #define atomic_read(ptr) (*(volatile typeof(*(ptr)) *)(ptr)) #define atomic_get(ptr) (*(volatile typeof(*(ptr)) *)(ptr))#ifndef __riscv_atomic #error atomic extension is required. #endif #define atomic_add(ptr, inc) __sync_fetch_and_add(ptr, inc) #define atomic_sub(ptr, inc) __sync_fetch_and_sub(ptr, inc) #define atomic_sub_return(ptr, inc) __sync_sub_and_fetch (ptr, inc) #define atomic_or(ptr, inc) __sync_fetch_and_or(ptr, inc) #define atomic_swap(ptr, swp) __sync_lock_test_and_set(ptr, swp) #define atomic_cas(ptr, cmp, swp) __sync_val_compare_and_swap(ptr, cmp, swp)typedef struct _spinlock {int lock; } spinlock_t;typedef struct _semaphore {spinlock_t lock;int count;int waiting; } semaphore_t;typedef struct _corelock {spinlock_t lock;int count;int core; } corelock_t;static inline int spinlock_trylock(spinlock_t *lock) {int res atomic_swap(lock-lock, -1);/* Use memory barrier to keep coherency */mb();return res; }static inline void spinlock_lock(spinlock_t *lock) {while(spinlock_trylock(lock)); }static inline void spinlock_unlock(spinlock_t *lock) {/* Use memory barrier to keep coherency */mb();atomic_set(lock-lock, 0);asm volatile(nop); }
http://www.hkea.cn/news/14508939/

相关文章:

  • 许昌住房城乡建设局网站wordpress获取站点标题
  • 整站优化关键词排名中文域名.网站
  • 三只松鼠网站建设营销型网站建设宣传语
  • 阿里巴巴网站优化管理部门网站建设说明
  • 滨州北京网站建设价格低营销型网站建设搭建方法
  • 国际网站怎么注册免费的下载软件的app
  • 网站开发工作招聘seo站长工具综合查询
  • 吴桥网站建设天津设计公司招聘
  • seo查询工具网站东莞新媒体运营
  • 以下哪一项不属于seo对网站推广的作用网站建设需要会什么软件有哪些
  • 艺术类 网站建设方案山东招标网官方网站
  • 国家工程建设标准化信息网站如何做网站结构及栏目策划
  • 网站建设实验分析总结做网站多少钱赚钱吗
  • 福建省龙岩市建设培训中心网站网站建设运营策划书
  • 做一个外贸网站html网站开发例子
  • 遂宁网站开发外贸建站有什么用
  • 学校门户网站作用网站建设的基本步奏
  • 优秀的网站设计方案网站建设怎么设置多语言
  • 集宁做网站的公司网页设计代码模板人物介绍
  • 了解网站建设工作不开心应该辞职吗
  • 茶叶建设网站市场分析wordpress版本降级
  • 外国服务器的网站用html5做的个人网站
  • 太原网站的优化免费的html
  • 票务网站做酒店推荐的目的wap网站的好处
  • 免费海报素材网站大全wordpress rss 文章
  • 甘肃省城市建设档案馆网站wordpress 上传文章
  • 医院网站前置审批公司网站建设开发济南兴田德润优惠吗
  • 做项目的网站东阳住房和城市建设网站
  • 网站建设天地心网站建设多少钱 知乎
  • 社交类网站开发需求分析平顶山网站建设价格