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

赣州企业网站在那做wordpress单页主题制作视频教程

赣州企业网站在那做,wordpress单页主题制作视频教程,用手机下载地图到内全卡,wordpress 制作落地页一.前言 1.什么是有锁编程#xff0c;什么是无锁编程#xff1f; 在编程中#xff0c;特别是在并发编程的上下文中#xff0c;“无锁”和“有锁”是描述线程同步和资源访问控制的两种不同策略。有锁#xff08;Locked#xff09;: 有锁编程是指使用锁#xff08;例如互…一.前言 1.什么是有锁编程什么是无锁编程 在编程中特别是在并发编程的上下文中“无锁”和“有锁”是描述线程同步和资源访问控制的两种不同策略。有锁Locked: 有锁编程是指使用锁例如互斥锁、信号量等来控制对共享资源的访问。在有锁策略中线程必须在执行关键部分的代码前获得锁以确保同一时间只有一个线程可以访问和修改共享资源。当线程完成对共享资源的操作后它释放锁使得其他线程可以接着访问资源。 特点包括 线程安全通过锁可以防止多个线程同时访问共享资源避免竞争条件。阻塞线程在尝试获取一个已被其他线程持有的锁时将会被阻塞直到锁被释放。 开销锁的获取和释放涉及操作系统层面的上下文切换可能会导致较大的性能开销。 死锁不正确的锁使用可能导致死锁即两个或多个线程永久性地阻塞等待彼此释放锁。无锁Lock-free: 无锁编程是一种不依赖于传统锁机制来控制共享资源访问的并发编程技术。无锁编程通常利用原子操作来确保即使在多个线程同时访问时共享资源也能保持一致性。 那什么原子操作 原子操作是指不可被中断的一个或一系列操作。它通过硬件支持来保证操作的原子性,通常使用特殊的CPU指令来实现。这些指令能够在单个步骤中完成读取-修改-写入的操作,而不会被其他线程中断。 上面提到的特殊指令-能够完成读取-修改-写入操作指的是CAS比较后交换技术。为什么提到它有什么用处 这就要说到现代计算机的存储结构以及解决提升效率带来的一些硬件设备。 二.理解无锁编程需要的知识 1.存储结构 可以看出L1和L2是每个核心都会有的。L3是一个处理器下的核心共有的。 主存常规语境下所指的内存是所有核心共有的。 越往下容量越大同时读取速度越慢。 Cpu访问缓存的时候会有一个最小的读取单位叫做cache line一般是64个字节。 那么问题来了。为什么需要cache line ?(缓存为什么这么设计 因为减少内存访问延迟CPU的运行速度远远高于主内存的访问速度。Cache Line通过提供一个小而快速的存储使得CPU能够更快地访问经常使用的数据和指令从而减少了因等待内存访问而造成的延迟。 提高数据访问效率由于数据访问通常具有空间局部性连续的数据被一起访问Cache Line作为一个数据块单位可以一次性将多个连续的数据加载到缓存中。这样当CPU访问其中一个数据时很可能接下来的数据已经在缓存中了从而提高了数据访问的效率。 带宽优化与内存接口相比CPU和缓存之间的数据带宽要宽得多。通过Cache Line可以更有效地利用这带宽因为每次传输都是传输一个数据块而不是单个字节。 实现预取和并行处理现代CPU通常具有预取机制能够预测哪些数据将会被访问并提前将数据加载到Cache中。Cache Line作为一个块单位使得预取更加有效。同时多核CPU可以利用Cache Line来并行处理数据提高多任务处理的效率。 减少总线压力如果没有缓存CPU每次读写数据都要直接与内存通信这会极大地增加总线上的数据流量。Cache Line允许CPU在大多数情况下与缓存而不是内存进行通信从而减少了总线的压力。 提升能效由于Cache Line减少了内存访问次数因此也降低了内存功耗整体上提升了系统的能效。 这种由cpu写到缓存而不是内存的策略叫做写回策略。 三.写回策略 写直达策略每次写操作会写到缓存中也会写到内存中。写性能会很低现代计算机很少使用了。 写回策略尽量把数据存储到缓存之中如果能写到缓存之中就避免写道内存中。 是否命中缓存是指之前的缓存中是否存有这个变量。 脏数据缓存与内存不一致或缓存有内存无的数据被标记为脏数据。 写数据的时候如果没有命中缓存就利用LRU策略寻找到缓存中使用最少的区域如果这块区域有数据并且是脏数据那么将这块区域的数据刷入内存中。如果不是直接写入缓存。 读数据的时候如果没有命中缓存先把数据从内存读入缓存cpu再进行使用数据。 写回策略带来什么问题 现代计算机结构有多个核心对应多个缓存核心间共享的变量在不同的核心的缓存里内容不一样的问题。 如何解决 四.MESI一致性协议 通过实现MESI一致性协议解决。他的内容及流程如下 缓存一致性协议是确保多处理器系统中各个处理器的缓存数据一致性的机制。让我们详细讨论一下最常见的MESIModified, Exclusive, Shared, Invalid协议的操作流程 1. MESI协议状态:    - Modified (M): 数据被修改只在当前缓存中有效与主存不一致。    - Exclusive (E): 数据只在当前缓存中未被修改与主存一致。    - Shared (S): 数据可能在多个缓存中存在与主存一致。    - Invalid (I): 缓存行无效。 2. 基本操作流程:    a. 读操作:       - 缓存未命中时:         * 如果其他缓存有此数据M或E状态该缓存需先将数据写回主存。         * 从主存读取数据标记为S状态如果其他缓存也有或E状态如果独占。       - 缓存命中时:         * 如果是M、E或S状态直接读取。         * 如果是I状态按缓存未命中处理。    b. 写操作:       - 缓存未命中时:         * 如果其他缓存有此数据需先使其无效。         * 从主存读取数据进行修改标记为M状态。       - 缓存命中时:         * 如果是M状态直接写入。         * 如果是E状态修改并变为M状态。         * 如果是S状态需先使其他缓存中的副本无效然后修改并变为M状态。         * 如果是I状态按缓存未命中处理。 3. 状态转换:    - I → E: 读取未被其他缓存持有的数据。    - I → S: 读取被其他缓存共享的数据。    - E → M: 修改独占的数据。    - S → M: 修改共享的数据需先使其他缓存副本无效。    - M → I, E → I, S → I: 其他处理器写入该数据。 4. 总线操作:    - Read: 请求读取数据。    - Read with Intent to Modify (RWITM): 请求读取并修改数据。    - Invalidate: 使其他缓存中的副本无效。    - Writeback: 将修改后的数据写回主存。 5. 协议执行流程:    a. 处理器发出内存访问请求。    b. 检查本地缓存状态。    c. 根据状态和操作类型可能需要发起总线事务。    d. 其他处理器监听总线根据需要更新自己的缓存状态。    e. 完成数据访问或修改。 上面我们提到了CAS与缓存一致性的关系 五.CAS CAS是实现原子操作和无锁数据结构的基础。 function CAS(M, A, B) isif M AM ← Breturn trueelsereturn false 它是一种原子操作它比较内存位置的内容与给定值只有在相同的情况下才会将该内存位置的内容修改为新的给定值。 CAS与缓存一致性的关系就是需要CAS在写回策略的环境中维护正确性和高效性这需要硬件层面的支持和软件的安全编程。 六.内存序和内存屏障 C中原子操作往往有一个参数是规定内存序用于指导编译器进行优化用于指导cpu进行指令重排。可以解决两个问题一是变量更新是否能马上被其他线程看到二是代码顺序性的问题。 那么问题来了为什么会有内存序问题 因为编译器和cpu会在判断代码顺序不影响程序的情况下有可能会重排相邻的代码执行顺序。比如一个线程锁住了一块内存空间另一个线程无法操作那块内存空间这项操作之后的操作并不刚需这块内存空间这时候可能会重排先往后执行。这是为了提升整个系统的性能但有时我们要求一定要按某个顺序执行那么就有时候就不允许重排操作。 内存序和内存屏障是为了解决现代计算机系统中由于硬件优化和多核处理器引起的内存访问复杂性问题 内存序:指定了内存操作的可见性和顺序性规则。 内存屏障:用于强制执行特定的内存操作顺序的硬件指令。 内存序和内存屏障的关系    - 内存序是高级抽象定义了操作的语义。    - 内存屏障是底层实现机制用于实现内存序。 C11原子变量内存序的相关参数 见std::memory_order - cppreference.com std内存屏障API,
http://www.dnsts.com.cn/news/172454.html

相关文章:

  • 导航网站头部代码郑州百度推广代运营
  • 网站建设费属于哪个税种免费行情软件网站mnw
  • 广东网站设计哪家专业功能型企业网站有哪些
  • 网站access数据库被攻击不断增大展示型企业网站
  • 重庆网站排名优化公司wordpress博客转出
  • 万网 网站建设合同营销咨询是做什么的
  • 蒙古文政务网站建设工作汇报微信企业app下载安装
  • 天津专业网站建设公司开发公司项目下半年计划
  • 铜仁市住房和城乡建设部网站软件定制开发网站
  • 广州新塘网站建设推广公司做家装图接单网站
  • wordpress电影源码上海网站seo快速排名
  • 网站建设费用计入哪个科目网站技术解决
  • 宁波网站建设zj95深圳建业公司怎么样
  • 娱乐公司网站建站背景介绍秦皇岛黄金海岸浴场
  • 利用网盘 建网站网页设计制作注册界面实验报告
  • 国税政务公开网站建设建站兔软件下载
  • 购物网站建设代码怎么搜索整个网站
  • 商务网站建设营销佛山公共交易资源平台
  • php源码怎么建设网站中铁集团招聘2022招聘信息
  • 如何做一个企业网站广州建设专修学院
  • 做网站 嵌入支付闸北区网站设计
  • 企业网站建设的平台网站三要素关键词 描述怎么做
  • 极速网站开发江苏城工建设科技有限公司网站
  • 邮箱wordpress旧版优化大师
  • 网站建站的步骤流程kilu wordpress安装
  • 流媒体网站建设规划 所需设备做公益筹集项目的网站
  • 帮朋友做网站 知乎数据库怎么做网站
  • 网站推广的电子邮件推广如何开发网站平台
  • 邢台学校网站建设费用没有网站可以做seo排名吗
  • 忠县网站建设网站建设关键词优化