并发和并行的区别?
- 并发:指在同一时刻做不止一件事情。比如数据库处理请求时,接受了第一个请求但是未处理完成,此时也可以接受第二个请求。两个请求任务在处理时间节点上可以有交集。
- 并行:指将大量的任务,拆解成多个子任务分配到多个线程上,并发的执行。
比如你要计算 1 到 100 的和,可以将计算分成两个部分,一个线程计算 1 到 50 的和,另一个线程计算 51 到 100 的和。
简单的说:并行是多线程的一种形式,多线程是并发的一种形式。 异步也是并发的一种形式。
来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。