线程同步和互斥机制的区别
2016-05-10 12:48
429 查看
很多初学者在学习线程同步和互斥机制的时候往往不能真正理解他们之间的区别,那就不能再合适的场合使用好这两种机制,其中的区别:
1. 互斥锁主要用来保护临界资源,什么是临界资源,就是有可能多个线程都需要访问的数据地址,也有可能是某一段 代码,执行这段代码有可能会改变多个线程都需要访问的数据。
2. 加入同步机制主要是为了在多线程程序中,如果需要对某个共享资源C进行同步访问,什么是同步访问,就是A线 程访问过程中,B线程不能访问,必须等A线程访问结束后,B线程才能访问,而互斥锁,如果用来对C进行保护, A访问C资源的过程中,B不能访问,A访问结束后,B可以访问,但不一定访问的到,这取决于系统的调度是否给 到B,如果没有,A反而被调度到了,那么A就有可能方法到C。反观同步机制,在这种情况下,如果系统没有调度
到B,A也是没有可能访问C的,必须等B调度到之后,A才可能重新访问。
1. 互斥锁主要用来保护临界资源,什么是临界资源,就是有可能多个线程都需要访问的数据地址,也有可能是某一段 代码,执行这段代码有可能会改变多个线程都需要访问的数据。
2. 加入同步机制主要是为了在多线程程序中,如果需要对某个共享资源C进行同步访问,什么是同步访问,就是A线 程访问过程中,B线程不能访问,必须等A线程访问结束后,B线程才能访问,而互斥锁,如果用来对C进行保护, A访问C资源的过程中,B不能访问,A访问结束后,B可以访问,但不一定访问的到,这取决于系统的调度是否给 到B,如果没有,A反而被调度到了,那么A就有可能方法到C。反观同步机制,在这种情况下,如果系统没有调度
到B,A也是没有可能访问C的,必须等B调度到之后,A才可能重新访问。
相关文章推荐
- 第九周项目1—深复制体验(1)
- TensorFlow 研究实践 三
- Android开发笔记之多媒体图像的处理
- struts2标签小问题
- git https 403
- Redis+Spring集成使用简单介绍
- JQuery入门(1) - 选择器
- H2 内存数据库使用说明
- 第十一周阅读程序(3)
- js判断移动端是否安装某款app的多种方法
- centos 7 开放 80端口
- sqlite入门基础
- L2-4. 这是二叉搜索树吗? PAT
- 时间管理微课程:值得永久收藏的25条时间管理技巧
- 数据解析第三方类报错的解决办法
- C++第五次上机实验----求和
- 12c OCP题库解析060-1 多租户环境下的临时表空间数据文件丢失
- 教师兼干部类
- lua之alter提示框
- 第十一周阅读程序(2)