博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
多任务的同步与相互排斥
阅读量:5158 次
发布时间:2019-06-13

本文共 685 字,大约阅读时间需要 2 分钟。

现代操作系统基本都是多任务操作系统,即同一时候有大量可调度实体在执行。在多任务操作系统中,同一时候执行的多个任务可能:

  • 都须要訪问/使用同一种资源
  • 多个任务之间有依赖关系。某个任务的执行依赖于还有一个任务

这两种情形是多任务编程中遇到的最主要的问题,也是多任务编程中的核心问题,同步和相互排斥就是用于解决这两个问题的。

相互排斥:是指散步在不同任务之间的若干程序片断,当某个任务执行当中一个程序片段时,其他任务就不能执行它们之中的任一程序片段,仅仅能等到该任务执行完这个程序片段后才干够执行。最主要的场景就是:一个公共资源同一时刻仅仅能被一个进程或线程使用。多个进程或线程不能同一时候使用公共资源。

同步:是指散步在不同任务之间的若干程序片断。它们的执行必须严格依照规定的某种先后次序来执行,这样的先后次序依赖于要完毕的特定的任务。

最主要的场景就是:两个或两个以上的进程或线程在执行过程中协同步调,按预定的先后次序执行。

比方 A 任务的执行依赖于 B 任务产生的数据。

显然,同步是一种更为复杂的相互排斥,而相互排斥是一种特殊的同步。也就是说相互排斥是两个任务之间不能够同一时候执行,他们会相互排斥,必须等待一个线程执行完成。还有一个才干执行。而同步也是不能同一时候执行。但他是必需要安照某种次序来执行对应的线程(也是一种相互排斥)。因此相互排斥具有唯一性和排它性。但相互排斥并不限制任务的执行顺序,即任务是无序的,而同步的任务之间则有顺序关系。

转自:

转载于:https://www.cnblogs.com/claireyuancy/p/6851721.html

你可能感兴趣的文章
注意java的对象引用
查看>>
C++ 面向对象 类成员函数this指针
查看>>
NSPredicate的使用,超级强大
查看>>
自动分割mp3等音频视频文件的脚本
查看>>
判断字符串是否为空的注意事项
查看>>
布兰诗歌
查看>>
js编码
查看>>
Pycharm Error loading package list:Status: 403错误解决方法
查看>>
steps/train_sat.sh
查看>>
转:Linux设备树(Device Tree)机制
查看>>
iOS 组件化
查看>>
(转)Tomcat 8 安装和配置、优化
查看>>
(转)Linxu磁盘体系知识介绍及磁盘介绍
查看>>
tkinter布局
查看>>
命令ord
查看>>
Sharepoint 2013搜索服务配置总结(实战)
查看>>
博客盈利请先考虑这七点
查看>>
使用 XMLBeans 进行编程
查看>>
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>