进程:是具有独立功能的程序在一个数据集合上运行的过程,是系统进行资源分配和调度的一个独立单位,包含一个运行程序所需要的资源。进程之间相对独立。
线程:是进程中的基本执行单位,是操作系统分配cpu时间的基本单位。
区别:是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响,而线程只是一个进程中的不同执行路径。 线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源又大,效率要差一些。
同步:发出一个功能调用时,在没有得到结果之前,该调用就不返回或继续执行后续操作
**异步:**发出一个功能调用后,无需等待结果,就可执行后续操作
阻塞:调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞:在得到结果之前,当前线程并不会被阻塞。
并发:一个时间段中有几个程序都处于已启动运行到运行完毕之间,都在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
并行:当系统有一个以上cpu时,则线程的操作可能非并发,当一个cpu执行一个线程时,另一个可执行另一个线程,两个线程不抢占资源,可以同时进行。