并行和并发
不管是并行还是并发,在用户看来都是同时运行的。不管是进程还是线程,都只是一个任务。真正完成工作的是 cpu。这些任务由cpu来完成,一个cpu只能执行一个任务。
并发是伪并行,即看起来是同时运行。单个cpu+多道技术就可以实现并发,(并行也属于并发),简单的可以理解为快速在多个线程来回切换,感觉好像同时在做多个事情。
只有具备多个cpu才能实现并行,单核下,可以利用多道技术,多个核,每个核也都可以利用多道技术(多道技术是针对单核而言的)。 有四个核,六个任务,这样同一时间有四个任务被执行,假设分别被分配给了cpu1,cpu2,cpu3,cpu4,一旦任务1遇到I/O就被迫中断执行,此时任务5就拿到cpu1的时间片去执行,这就是单核下的多道技术 ,而一旦任务1的I/O结束了,操作系统会重新调用它(需知进程的调度、分配给哪个cpu运行,由操作系统说了算),可能被分配给四个cpu中的任意一个去执行。
多道技术:内存中同时存入多道(多个)程序,cpu从一个进程快速切换到另外一个,使每个进程各自运行几十或几百毫秒,这样,虽然在某一个瞬间,一个cpu只能执行一个任务,但在1秒内,cpu却可以运行多个进程,这就给人产生了并行的错觉,即伪并发,以此来区分多处理器操作系统的真正硬件并行(多个cpu共享同一个物理内存)。
同步执行:一个进程在执行某个任务时,另外一个进程必须等待其执行完毕,才能继续执行。
异步执行:当一个进程正在执行某个任务时,另一个进程可以继续执行,而不用等待它的执行完成。当有消息返回时,系统会通知后者进行处理,可以提高执行效率。
比如打电话时是同步通信,发短信时是异步通信。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 将新键值添加到 python 字典09/04
- ♥ python peewee 有什么用?12/05
- ♥ Python代码中如何读取键盘输入的值11/18
- ♥ 如何确定 Python 数中的偶数09/06
- ♥ 如何在python中卸载django12/27
- ♥ 一篇教你如何使用Python生成器的文章11/28
内容反馈