【Linux系统编程】同步和互斥的概念
2020-03-06 10:49
691 查看
00. 目录
文章目录
01. 概述
现代操作系统基本都是多任务操作系统,即同时有大量可调度实体在运行。在多任务操作系统中,同时运行的多个任务可能:
- 都需要访问/使用同一种资源
- 多个任务之间有依赖关系,某个任务的运行依赖于另一个任务
这两种情形是多任务编程中遇到的最基本的问题,也是多任务编程中的核心问题,同步和互斥就是用于解决这两个问题的。
02. 互斥的概念
互斥:是指散步在不同任务之间的若干程序片断,当某个任务运行其中一个程序片段时,其它任务就不能运行它们之中的任一程序片段,只能等到该任务运行完这个程序片段后才可以运行。最基本的场景就是:一个公共资源同一时刻只能被一个进程或线程使用,多个进程或线程不能同时使用公共资源。
03. 同步的概念
同步:是指散步在不同任务之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。最基本的场景就是:两个或两个以上的进程或线程在运行过程中协同步调,按预定的先后次序运行。比如 A 任务的运行依赖于 B 任务产生的数据。
04. 总结
总之,同步是一种更为复杂的互斥,而互斥是一种特殊的同步。也就是说互斥是两个任务之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要按照某种次序来运行相应的线程(也是一种互斥)!因此互斥具有唯一性和排它性,但互斥并不限制任务的运行顺序,即任务是无序的,而同步的任务之间则有顺序关系。
05. 附录
5.1 参考: 同步和互斥
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- 【Linux系统编程】进程同步与互斥:POSIX有名信号量
- 【Linux系统编程】进程同步与互斥:System V 信号量
- linux 系统编程-学习笔记9--线程的同步互斥锁、读写锁/select/poll
- [linux] C语言Linux系统编程进程基本概念
- linux 同步 互斥 概念
- Linux系统编程---线程概念
- Linux/Unix系统编程-基本概念
- linux 多线程编程 之 信号量互斥同步
- (Michael Kerrisk)Linux系统编程手册读书笔记(一)-----系统编程概念中的函数解析
- linux 多线程编程 之 信号量互斥同步
- Linux系统编程——线程同步与互斥:读写锁
- Linux系统编程——线程同步与互斥:读写锁
- Linux系统编程手册一 :Linux系统基本概念。
- linux系统中,同步、互斥、阻塞的初步认知
- Linux系统编程之基本概念--学习笔记
- linux 多线程编程 之 信号量互斥同步
- Linux同步与互斥应用(零):基础概念
- linux系统编程之基础必备(七):read/write函数与(非)阻塞I/O的概念
- linux 多线程编程 之 信号量互斥同步
- 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】全面解析Linux内核的同步与互斥机制--同步篇