并发
当多个线程在同时进行时,而系统只有一个cpu(小于线程数),此时系统不能真正的同时进行所有线程运行(只可以运行一个线程),系统会将cpu运行时间划分成若干个时间段,再将每个时间段交给线程去执行,在一个线程运行时,其他等待cpu资源的线程都被挂起。这便是并发。
并行
目前即使是个人电脑的cpu也是多核,在多核电脑中,每一个cpu都可以独立运行一个线程,这种可以同时执行多个线程的方式便是并行
区别
- 并行是在同一时刻多个线程同时运行,而并发是cpu的时分片段,每一时刻只运行一个线程,cpu会在多个线程间快速切换,但是切换过程是有性能开销的
- 只有多核的服务器才能实现正真意义的并行,否则都是并发。而且并行和并发是同时存在的。