并发
并发有2种含义 :
1. 多个人同时做一件事
生活中这种多个人做一件事的例子很常见,比如盖房子,肯定有多个人同时协作一起完成的,他们的共同目标都是相同的,就是把房子盖好;在软件中可以理解为多线程同时操作一个共享变量,这就是一种并发的操作
2. 一个人同时做多件事
一个人同时做多件事,小明可以一边打电话一边拖地,这也是一种并发的操作,在软件中常见的就是多线程操作,往往一个进程中都是由多个线程组成的,就可以理解为一个进程同时做了很多件事;
并行
并行可以理解为多个人同时进行,并且这些人自己做自己的事,各不相关,就像在一家公司里面,虽然在一起工作,但是每位员工都有自己的事情要做,他们各司其职,为公司做贡献
串行
事情一件件地做,每件事都需要做完才能去做下一件事,这就叫串行,比如小明先拖地,然后在打电话,接着在去做其他事情;每件事情都井然有序地排着,等着小明去完成;在软件中,加锁就是一种串行化的实现方式,通过加锁保证了线程的数据安全;
总结
为了方便大家更好的理解,一次性将 并发、并行、串行 都用图表示出来,以更直观地展示他们之间的区别