线程同步和互斥的区别
2023-09-14 09:00:06 时间
- 互斥是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。
- 同步是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。
- 同步其实已经实现了互斥,所以同步是一种更为复杂的互斥。
- 互斥是一种特殊的同步。
所谓互斥,就是不同线程通过竞争进入临界区(共享的数据和硬件资源),为了防止访问冲突,在有限的时间内只允许其中之一独占性的使用共享资源。如不允许同时写
同步关系则是多个线程彼此合作,通过一定的逻辑关系来共同完成一个任务。一般来说,同步关系中往往包含互斥,同时对临界区的资源会按照某种逻辑顺序进行访问。如先生产后使用
总的来说,两者的区别就是:互斥是通过竞争对资源的独占使用,彼此之间不需要知道对方的存在,执行顺序是一个乱序。
同步是协调多个相互关联线程合作完成任务,彼此之间知道对方存在,执行顺序往往是有序的。
lock与unlock方法,替换synchronized,这就是互斥锁的体现。消费者生产者模式就是同步锁的体现。
相关文章
- 深入Java线程管理(三):线程同步
- 线程同步工具(六)控制并发阶段性任务的改变
- 线程同步工具(五)运行阶段性并发任务
- 基本线程同步(四)在同步代码中使用条件
- .NET 同步与异步 之 Mutex (十二)
- 第一百四十五节,JavaScript,同步动画
- java线程同步: synchronized详解(转)
- java核心知识点学习----多线程并发之线程同步
- C#编程总结(三)线程同步
- 同步Internet时间
- 奕新集团项目--Oracle 源RAC ---目标 RAC GG 搭建 11.2.3 版本 双向同步
- EasyPlayer Android安卓流媒体播放器实现播放同步录像功能实现(附源码)
- Java核心知识点学习----线程同步工具类,CyclicBarrier学习
- Veeam Backup & Replication 8 同步与恢复
- MongoDB Secondary同步慢问题分析(续)
- 实现两个INPUT同步输入
- 计算机视觉 基于CUDA编程的入门与实践 线程及同步四
- go锁实现代码同步执行:sync.WaitGroup和sync.Mutex
- linux系统编程:线程同步-信号量(semaphore)
- 线程同步方式——信号量
- C/C++ 实现多线程与线程同步
- 006-多线程-基础-同步解决 概述【ReentrantLock、Semaphore、CyclicBarrier、CountDownLatch】
- linux 科普扫盲----同步国内镜像源比如阿里云镜像站制作企业用离线yum源
- Go 同步原语:sync 包让你对并发控制得心应手