一.进程与线程:
进程:是资源分配的基本单位,一个程序开始运行打就是一个进程
线程:是调度运行的基本单位,程序中的一个执行流一个进程由一或多个线程组成
一些特性点:
Linux创建一个进程时间开销远比windows少得多
在多核CPU情况下,多线程性能不如多进程
二.并发与并行,串行:
并行:系统同时执行多个同一个动作
并发:系统同时存在多个同一个动作,但是是通过比如:cpu调度算法在不同操作中切换交替执行,并不会同时执行,只是太快了导致用户看上去是在同时执行
串行:挨着执行,并且必须执行完毕才能执行下一个
三.同步与异步
两者关注于消息通信机制,更偏向于方法结果(例如一个线程运行结束返回信息)
同步:调用后需要等待方法返回后才能进行下一步(此时线程还是在运行处理中)
异步:更像是只传递了一个消息,调用后立刻返回,可以进行后续操作,调用的方法会放在另一个线程中运行
四.阻塞与非阻塞
两者更偏向于方法运行过程状态(例如一个线程运行的过程)
阻塞:调用结果返回前,会将线程挂起(这时线程不会处理各种消息而 是停止了)
非阻塞:调用结果返回前,不会阻塞(也就是不会挂起),而是直接返回结果