并发编程理论

并发与并行

--并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。简言之,是指系统具有处理多个任务的能力。

并发

当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。简言之,是指系统具有同时处理多个任务的能力。
多个进程切换执行,由于CPU处理速度较快,往往看上去在同时执行.
原理:CPU从硬件层面将内存分割开,使得进程在自己独立的内存中运行,CPU每次只处理一个进程,当这个进程进入阻塞状态(多为IO)时,或者是执行时间            超过设定时间时,CPU切换至别的就绪状态的程序去执行,等到该程序结束IO(阻塞状态)进入就绪状态时,cpu才会切换回来继续执行该进程

并行

多个进程同时运行,要求多核才能实现

阻塞与非租塞

阻塞

就是等待状态,当进程进入IO状态或者时,cpu需要等待其结果是,那么就是进入阻塞状态,当服务器连接一个客户端,接收不到客户端数据时,也是阻塞状态

非阻塞

不需要等待的状态就是非阻塞状态

详情参考:并发并行同步异步阻塞非阻塞详解

原文地址:https://www.cnblogs.com/luowenConnor/p/10963217.html