串行和并行
串行是指如何执行任务。当多个任务串行执行时,每个任务都按顺序执行,只有一个任务完成后才能执行下一个任务。 (以早期的单核 CPU 为例)
并行意味着多个任务可以同时执行(前提是多核CPU)不需要等待。
同步和异步
所谓同步,是指当一个任务的完成需要依赖另一个任务时,需要等待依赖的任务完成才能完成依赖的任务,这是一个可靠的任务序列。要成功和失败,两个任务的状态可以保持一致,需要等待和协调运行。
所谓异步是相互独立的。分配了一个任务之后,就不需要等待任务的执行结果了,继续做自己的事情。分配的任务是成功执行还是失败都没有关系。 .无法确定其他任务是否真正完成,因此它是一个不可靠的任务序列。
小结:
1、串行与同步的区别:串行是指在早期的单核CPU中,一台计算机只能同时执行一个程序。如果要运行另一个程序,则需要在执行下一个程序之前关闭当前程序。 , 适用于多个程序。同步意味着一次只能在一个程序中执行一个任务。它适用于程序中的多个进程或多个线程。
所以两者有本质的区别。串行用于多个程序,同步用于一个程序内的多个进程或线程。
2、并行与异步的区别:并行是指多核CPU,可以同时执行多个程序。异步意味着可以在同一个程序中执行多个进程或多个线程。
两者的本质区别在于并行是指多个程序,而异步是指一个程序内的多个进程和多个线程。
3、并行和并发的区别:并行和并发都是指多个程序,但区别在于并行可以同时执行多个任务,而并发只能同时执行一个任务。 CPU上可以打开多个程序,可以按时间片轮询多个程序。从用户的角度来看,它实现了多个程序同时伪并行执行。从 CPU 的角度来看,它一次只能执行一个程序。 ,所以他是串口的,但是因为CPU切换速度太快我们从表面上看不出来。
并行是多个程序同时执行的真实,并发是通过时间轮询的伪并行。
阻塞与非阻塞:
阻塞:只要涉及到I/O操作或者网络请求,都会被阻塞,比如read、recv、accept。
非阻塞:只要不涉及I/O,内存中可以直接计算的网络请求都是非阻塞的,例如:list.append(8), dict["a"]=1 是非阻塞的阻塞。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中使用匿名函数?01/09
- ♥ 如何使用python操作MongoDB数据库?01/03
- ♥ 如何启动python08/12
- ♥ 如何在python中从堆中删除元素11/19
- ♥ ubuntu安装python3的几种方法12/05
- ♥ 如何在Python中使用IPy模块?12/25
内容反馈