并发、并行、同步、异步、多线程的区别?
2023-09-14 09:12:06 时间
并发:同一时间段有几个程序都处于已经启动到运行完毕之间,并且这几个程序都在同一个处理机上运行,并发的两种关系是同步和互斥;
互斥:进程之间访问临界资源时相互排斥的现象;
同步:进程之间存在依赖关系,一个进程结束的输出作为另一个进程的输入。具有同步关系的一组并发进程之间发送的信息称为消息或者事件;
并行:单处理器中进程被交替执行,表现出一种并发的外部特征;在多处理器中,进程可以交替执行,还能重叠执行,实现并行处理,并行就是同事发生的多个并发事件,具有并发的含义,但并发不一定是并行,也就是说事件之间不一定要同一时刻发生;
多线程:多线程是进程中并发运行的一段代码,能够实现线程之间的切换执行;
异步:和同步相对,同步是顺序执行,而异步是彼此独立,在等待某个事件的过程中继续做自己的事,不要等待这一事件完成后再工作。线程是实现异步的一个方式,异步是让调用方法的主线程不需要同步等待另一个线程的完成,从而让主线程干其他事情。
异步和多线程:不是同等关系,异步是目的,多线程只是实现异步的一个手段,实现异步可以采用多线程技术或者交给其他进程来处理。
相关文章
- Androidi性能优化之多线程和同步
- Java多线程--同步与死锁:synchronized;等待与唤醒:wait、notify、notifyAll;生命周期
- 【深入浅出etcd系列】3. 日志同步
- redis竞汰数据同步问题解决
- 本地系统时间同步
- 揽货最短路径解决方案算法 - V2(增加了时间维度-客户允许的服务时间段,C#/JAVA同步实现,带python作图)
- java核心知识点学习----多线程并发之线程同步
- 多线程同步基础
- 线程入门-线程同步浅析
- java多线程 -- 同步鎖
- Redis 学习笔记四 Mysql 与Redis的同步实践
- 从执行上下文角度重新理解.NET(Core)的多线程编程[2]:同步上下文
- APF model和Fiori launchpad tile的同步问题
- [BI项目记]-DB脚本同步
- 银行取款[多线程]{使用volatile修饰共享变量,但此场景并不保证线程同步}
- Qt进程与线程的概念、Qt多线程编程、多线程间的同步
- ffplay音视频同步
- 多线程与同步
- 使用MRS CDL实现实时数据同步的极致性能
- C++多线程编程:同步之互斥量Mutex
- Rsync同步工具安装文档
- 基于System Verilog的同步FIFO实现(一)
- 数据接口同步的同步方法
- 多线程间的同步
- 多线程同步AutoResetEvent 和ManualResetEvent
- VC++ 多线程同步实例