同步与互斥
2013-06-19 11:07
162 查看
有数据交互的进程之间的关系主要有两种,同步与互斥.所谓互斥,是指在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行.所谓同步,是指在不同进程之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务.
很显然,同步是一种更为复杂的互斥,而互斥是一种特殊的同步. 也就是说互斥是两个线程之间不可以同时运行某个代码片段,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行;而同步也是不能同时运行的,同时它还要必须要安照某种次序来运行相应的线程(也是一种互斥).
互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性.但互斥无法限制访问者对资源的访问顺序,即访问是无序的.任务A需要使用打印机,任务B也需要使用打印机,那么只有在任务A使用结束的情况下B才能使用打印机,所有A和B之间是间接关系,那么实现这种间接关系的机制就是互斥.但是互斥无法限制访问者对资源的访问顺序,即访问的无序的.
同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问.在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的.少数情况是指可以允许多个访问者同时访问资源.任务A对某个缓冲区进行写操作,任务B从这个缓冲区进行读操作,那么A和B就是直接的关系,那么实现这种直接关系的机制就是同步.大多数在建立在互斥的基础上,通过机制实现访问者对资源的有序访问.
在linux中实现线程间的同步和互斥的主要机制是:信号量和互斥锁
很显然,同步是一种更为复杂的互斥,而互斥是一种特殊的同步. 也就是说互斥是两个线程之间不可以同时运行某个代码片段,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行;而同步也是不能同时运行的,同时它还要必须要安照某种次序来运行相应的线程(也是一种互斥).
互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性.但互斥无法限制访问者对资源的访问顺序,即访问是无序的.任务A需要使用打印机,任务B也需要使用打印机,那么只有在任务A使用结束的情况下B才能使用打印机,所有A和B之间是间接关系,那么实现这种间接关系的机制就是互斥.但是互斥无法限制访问者对资源的访问顺序,即访问的无序的.
同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问.在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的.少数情况是指可以允许多个访问者同时访问资源.任务A对某个缓冲区进行写操作,任务B从这个缓冲区进行读操作,那么A和B就是直接的关系,那么实现这种直接关系的机制就是同步.大多数在建立在互斥的基础上,通过机制实现访问者对资源的有序访问.
在linux中实现线程间的同步和互斥的主要机制是:信号量和互斥锁
相关文章推荐
- 互斥与同步---生产者与消费者
- 进程和线程之间互斥和同步区别
- 操作系统课程设计 线程的同步与互斥
- 一起talk C栗子吧(第一百回:C语言实例--使用信号量进行进程间同步与互斥一)
- 线程的同步与互斥(死锁的产生和避免)
- 进程、线程知识点总结和同步(消费者生产者,读者写者三类问题)、互斥、异步、并发、并行、死锁、活锁的总结
- Linux多线程编程--同步与互斥
- 操作系统之进程互斥与同步和线程
- C++ 中的同步与互斥 (recursive_mutex,timed_mutex,recursive_timed_mutex, wait_until() , etc
- 操作系统养成计划之篇一:同步互斥经典问题
- 关于多线程编程 同步、互斥、读写问题的链接
- Java高效并发之乐观锁悲观锁、(互斥同步、非互斥同步)
- Linux 编程之【线程】同步与互斥
- 互斥对象_打印字符串_2线程_同步
- 同步与互斥的基本原理
- 同步与互斥的基本原理
- 解决多线程编程中的同步互斥问题
- 全面解析Linux内核的同步与互斥机制--同步篇(转)
- 同步和互斥有什么联系和区别