进程/线程、同步/异步、阻塞/非阻塞

简介:
1.进程和线程

(1)进程(process):
是windows系统中的重要概念,它包含着一个运行程序所需要的资源;一个正在运行的应用程序在操作系统中被视为一个进程(进程可以包含一个或多个线程);进程和进程之间是相互独立的,一个进程无法访问另外一个进程的数据
(2)线程(thread):
是进程中的基本执行单位,一个进程可以包含若干个线程,在进程入口执行的第一个线程被称为这个进程的主线程

进程和线程的区别:主要区别是它们是不同操作系统资源管理方式;
一个程序至少有一个进程,一个进程至少有一个线程
进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响,而线程只是一个进程中的不同执行路径
线程不能够独立执行,必须依托于应用程序,由应用程序提供多个线程执行控制

2.同步和异步的区别

(1)同步:当一个同步调用发出去后,调用者需要一直等待调用的结果通知,才能进行后续的执行;
(2)异步:当一个同步调用发出后,调用者不必一直等待调用返回的结果;
两种方式:
1.主动轮询异步调用的结果
2.被调用方通过callback回调通知,来通知调用方调用结果

3.阻塞和非阻塞

阻塞和非阻塞的重点是在于进/线程等待消息的行为,也就是在等地等消息的时候,当进/线程是挂起状态,还是非挂起状态

(1)阻塞:调用在发出去之后,在消息返回之前,当进/线程会被挂起,直到有消息返回,当前的进/线程才会被激活
(2)非阻塞:调用在发出去后,不会阻塞当前进/线程,而会立即返回

同步和异步,重点在于消息通知的方式;阻塞和非阻塞,重点在于等消息时候的行为。

四种组合方式(老王烧水的例子):

同步阻塞:老王用水壶烧水,并且站在那里等着,啥都不干,每隔一定时间看水开没开;
同步非阻塞:老王用水壶烧水,跑回屋里玩游戏,但是还会每隔一段时间过来看看水开没开,水没开就回去

异步阻塞:老王这次使用响水壶烧水,站在那里啥都不干,但是不会再每隔一段时间去看水开,而是等水开了,水壶会自动通知他
异步非阻塞:老王使用响水壶烧水,跑回屋里玩游戏,等着水壶响了通知他

目录
相关文章
|
7天前
|
安全 Java 数据处理
Python网络编程基础(Socket编程)多线程/多进程服务器编程
【4月更文挑战第11天】在网络编程中,随着客户端数量的增加,服务器的处理能力成为了一个重要的考量因素。为了处理多个客户端的并发请求,我们通常需要采用多线程或多进程的方式。在本章中,我们将探讨多线程/多进程服务器编程的概念,并通过一个多线程服务器的示例来演示其实现。
|
23天前
|
消息中间件 安全 Linux
线程同步与IPC:单进程多线程环境下的选择与权衡
线程同步与IPC:单进程多线程环境下的选择与权衡
57 0
|
24天前
|
消息中间件 存储 算法
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
68 0
|
25天前
|
安全 Python
Python中的并发编程:多线程与多进程技术探究
本文将深入探讨Python中的并发编程技术,重点介绍多线程和多进程两种并发处理方式的原理、应用场景及优缺点,并结合实例分析如何在Python中实现并发编程,以提高程序的性能和效率。
|
24天前
|
消息中间件 Linux 调度
【Linux 进程/线程状态 】深入理解Linux C++中的进程/线程状态:阻塞,休眠,僵死
【Linux 进程/线程状态 】深入理解Linux C++中的进程/线程状态:阻塞,休眠,僵死
63 0
|
1天前
|
调度 Python
Python多线程、多进程与协程面试题解析
【4月更文挑战第14天】Python并发编程涉及多线程、多进程和协程。面试中,对这些概念的理解和应用是评估候选人的重要标准。本文介绍了它们的基础知识、常见问题和应对策略。多线程在同一进程中并发执行,多进程通过进程间通信实现并发,协程则使用`asyncio`进行轻量级线程控制。面试常遇到的问题包括并发并行混淆、GIL影响多线程性能、进程间通信不当和协程异步IO理解不清。要掌握并发模型,需明确其适用场景,理解GIL、进程间通信和协程调度机制。
12 0
|
16天前
|
安全 Linux API
Android进程与线程
Android进程与线程
18 0
|
23天前
|
存储 算法 Linux
【Linux 系统标准 进程资源】Linux 创建一个最基本的进程所需的资源分析,以及线程资源与之的差异
【Linux 系统标准 进程资源】Linux 创建一个最基本的进程所需的资源分析,以及线程资源与之的差异
25 0
|
24天前
|
存储 编解码 算法
【ffmpeg音视频同步】解决ffmpeg音视频中多线程之间的数据同步问题
【ffmpeg音视频同步】解决ffmpeg音视频中多线程之间的数据同步问题
38 2
|
24天前
|
并行计算 Python
Python中的并发编程:多线程与多进程的比较
在Python编程中,实现并发操作是提升程序性能的重要手段之一。本文将探讨Python中的多线程与多进程两种并发编程方式的优劣及适用场景,帮助读者更好地选择合适的方法来提高程序运行效率。

相关实验场景

更多