线程------并发并行

单线程程序:程序执行过程中始终只有一个线程在运行,后面的代码段必须等到前面的代码段的任务执行完毕后才能执行,这样的程序可以认为是单线程程序

线程------并发并行

  • count2只能等count执行完后才能执行,因为这个程序只有一个线程(主线程)

多线程程序:程序由多个线程构成,方法内各代码块执行顺序是不确定的,这样的程序可以认为是多线程程序

线程------并发并行

  • count和count2先后顺序取决于线程的调度情况
    并发和并行是针对于多线程的程序

并发:逻辑上的同时处理。能处理多个事件,但是并不一定是同时进行的。

线程------并发并行

  • 说明:这里可能只有一个处理器的多线程,由系统的调度,让不同的线程在不同的小的时间段内执行各自的线程任务逻辑

并行:物理或是实际的同时处理。能在同一时刻处理多个事件

线程------并发并行

  • 说明:并行具有并发的含义,并发不一定是并行的,因为不是同时进行。

生活中并发并行例子:

线程------并发并行

小结:

  • 并行具有并发的含义,并发不一定是并行的
  • 多核处理器处理能力强于单核处理能力,且有更少的系统调度和上下文切换
  • 多核计算机多任务时往往时并发和并行同时进行