python的并行、并发:
并发:在一个时间段,处理多个任务,单核也可以并发(CPU分时间片);
并行:在同一个时刻,处理多个任务,必须多核才能并行;
Python实现并发的手段:
1、操作系统提供:进程、线程;
2、编程语言提供:协程:用户空间的调度(py3);
题外话:
现在的操作系统,进程和线程的区别越来越小,因为进程越来越轻了;实际上,Linux的线程是通过进程实现的;
Python的进程和线程的区别:
Python每个进程都会启动一个解释器;
Python每个线程(一个进程下面的)共享一个解释器;
ps:Python没有提供主动停止线程的方法的;只能等线程处理完毕,或者主线程结束;所以在线程逻辑里面一定要写退出逻辑;
python的同步、异步
同步、异步:
发生在函数调用的时候,是否得到直接最终结果;
得到直接最终结果的是:同步调用;
不得到直接最终结果的是:异步调用;
阻塞、非阻塞:
发生在函数调用的时候,是否立刻返回;
立刻返回:非阻塞调用;
不立刻返回:阻塞调用;
ps:同步、异步 与 阻塞、非阻塞 在概念上是不相关的;
同步、异步:关注的是结果;
阻塞、非阻塞:关注的是是否等待;
ps:异步非阻塞是最好的性能咯;
网友评论