进程间同步

简介: 进程间同步

并发

线程和进程都是一个调度的单位

并发进程之间的关系

交互关系之间的关系是很复杂的,假如一个进程需要等待另外一个进程的调用才可以运行,就如下面这个例子

竞争关系

上面这个区叫做临界区域

协作方式

前面我们说过异步和同步的概念

那么异步进程我们前面说了,特点就是随机,那么随机的进程就会产生

我们看一个例子

如果这两个进程不是并发执行,那么最后结果一定是0

但是这里如果是并发

我们可以看到造成这样的原因是因为T是局部变量,每个进程的stack都是独立的,所以才会得到两个程序将全局变量x都赋值了1,即便是线程并发,栈空间也是独立的,所以也可能会出现这样的问题

但我们再换一个执行方式

如果并发线程或进程T1先执行,T2在执行,那么就不会出现问题

但是不论如何,只要是两个进程或线程并发执行,如果里面有需要交换数据,那么就会有这样问题。

所以我们需要有另外一个方式

同步

同步机制

同步的工具

互斥锁就是纯用来解决竞争问题

相关文章
|
1月前
|
Java
操作系统基础:进程同步【下】
操作系统基础:进程同步【下】
|
1月前
|
存储 网络协议 Java
深入理解Linux网络——内核与用户进程协作之同步阻塞方案(BIO)
在上一部分中讲述了网络包是如何从网卡送到协议栈的(详见深入理解Linux网络——内核是如何接收到网络包的),接下来内核还有一项重要的工作,就是在协议栈接收处理完输入包后要通知到用户进程,如何用户进程接收到并处理这些数据。
|
19天前
|
算法 数据库
操作系统:经典进程同步问题的高级探讨
操作系统:经典进程同步问题的高级探讨
20 1
|
28天前
|
算法 安全 调度
【操作系统】进程同步与进程互斥
【操作系统】进程同步与进程互斥
26 2
|
7天前
|
数据挖掘 调度 开发者
Python并发编程的艺术:掌握线程、进程与协程的同步技巧
并发编程在Python中涵盖线程、进程和协程,用于优化IO操作和响应速度。`threading`模块支持线程,`multiprocessing`处理进程,而`asyncio`则用于协程。线程通过Lock和Condition Objects同步,进程使用Queue和Pipe通信。协程利用异步事件循环避免上下文切换。了解并发模型及同步技术是提升Python应用性能的关键。
28 5
|
28天前
|
C++
【操作系统】信号量机制(整型信号量、记录型信号量),用信号量实现进程互斥、同步、前驱关系
【操作系统】信号量机制(整型信号量、记录型信号量),用信号量实现进程互斥、同步、前驱关系
33 6
|
1月前
|
算法 安全 调度
操作系统(8)---进程的同步与互斥以及信号量机制(万字总结~)(1)
操作系统(8)---进程的同步与互斥以及信号量机制(万字总结~)
34 0
操作系统(8)---进程的同步与互斥以及信号量机制(万字总结~)(1)
|
18天前
|
Rust 算法 安全
操作系统之进程同步
操作系统之进程同步
13 0
|
1月前
|
存储 安全 Linux
【Linux】详解进程通信中信号量的本质&&同步和互斥的概念&&临界资源和临界区的概念
【Linux】详解进程通信中信号量的本质&&同步和互斥的概念&&临界资源和临界区的概念

热门文章

最新文章

相关实验场景

更多