首页 > 其他分享 >多线程中互斥锁与原子性的区别

多线程中互斥锁与原子性的区别

时间:2023-01-11 19:23:28浏览次数:55  
标签:原子 硬件 互斥 线程 操作 多线程

一个好的解释,

原子操作是不能细分为更小部分的操作。因此,它永远不会半途而废,因此您可以保证它将始终以一致的状态被观察到。例如,现代硬件实现原子比较和交换操作。

互斥锁排除其他进程或线程执行同一段代码(关键段)。基本上,它确保最多一个线程执行给定的代码段。互斥锁也称为锁。

在幕后,锁必须以某种方式使用硬件实现,并且实现必须利用底层硬件的原子性保证。

大多数非平凡操作都不能成为原子操作,因此必须在关键部分执行时使用锁来阻止其他线程操作,否则必须仔细设计无锁算法,以确保所有关键状态更改操作都可以使用原子操作安全实现。

参考:

 

标签:原子,硬件,互斥,线程,操作,多线程
From: https://www.cnblogs.com/strive-sun/p/17044701.html

相关文章

  • 2.多线程编程的目标与挑战
    一.串行、并行与并发 串行:单工作者依次执行多个任务(一个任务执行完成再执行下一个任务)。 并行:多工作者同时执行多个任务(每个工作者执行一个任务)。 并发:单工作者交替......
  • 强哥说Java--Java多线程
    Java多线程​​前言​​​​总目录​​​​一、基本概念​​​​1.程序​​​​2.进程​​​​3.线程​​​​3.实例理解​​​​4.单核CPU和多核CPU的理解​​​​5.并行和......
  • 5. 使用互斥量保护共享数据
    使用互斥量保护共享数据C++中使用互斥量C++通过实例化std::mutex创建互斥量,通过调用成员函数lock()进行加锁,unlock()进行解锁,在实践中不推荐直接调用成员函数,因为调用......
  • python接口自动化,解决多线程多次执行conftest.py文件内容
    最近在做接口自动化,在使用ytest-xdist多线程执行用例时发现了一个问题,就是conftest.py文件里的内容,也被多次执行了, conftest.py放的是登录等前后置方法,多次执行这不是......
  • python多线程应用-批量下载拉勾网课程
    importconcurrentimportosimportreimporttimefromcollections.abcimportIterablefromCrypto.CipherimportAESfromtool.request_mainimportrequestMain......
  • python多线程应用-批量下载视频课程(宠医堂)
    importosimportreimportshutilimporttimefromcollections.abcimportIterableimportconcurrent.futuresfromCrypto.CipherimportAESimportrequestsfrom......
  • AXI原子操作总结
    AXI3原子访问是一系列针对存储区域的操作。当主机想要对特定存储区域执行一系列访问时,会采用原子访问来确保该区域中的原始数据不会被其他主机写入修改。这些访问操作通常......
  • Task 带参数和返回值的多线程调用
    staticvoidMain(string[]args){//无参数异步vartasks=newList<Task>();for(inti=0;i<5000;i++)......
  • 36 多线程 知识点
    //了解进程//进程(Process)是计算机中的程序关于某数据集合上的一次运行活动//是系统进行资源分配和调度的基本单位,是操作系统结构的基础//说人话:打开一个应用程序就是在......
  • 工作总结之线程池和原子类篇
    目录工作总结之线程池和原子类篇前言解决思路具体实现代码期间遇到的问题有待优化的地方工作总结之线程池和原子类篇前言起因是,项目里面的同步代码的执行时间过久(20小......