资讯详情

并发基本概念

文章目录

    • 程序、程序和线程的区别
    • 进程间通信
    • 线程间通信
    • 并发和并行 (单核并发,多核并行)

程序、程序和线程的区别

程序:静态存储在磁盘上(类似)Java中的类) 过程:如果加载到内存,可以执行,可以看作是程序的例子(类似Java对象);基本独立,线程存在于过程中,是过程的子集 线程:一个过程可以分为多个线程,一个线程是指令流,线程顺序执行

进程间通信

过程间通信比较复杂,同一台计算机的过程通信称为IPC(Inter-process communication)

线程间通信

  • 线程间通信相对简单,因为他们共享进程内的内存
  • 同一变量可以访问多个线程
  • 线程较轻,线程上下文切换成本一般低于过程上下文切换
  • Java中每个方法就是个线程

并发和并行 (单核并发,多核并行)

单核CPU下面,线程实际上是串行执行的,操作系统中有一个组件叫做 ,将CPU时间片分配给不同的线程,只是因为CPU在线程间切换非常快,所以感觉同时运行,总结为一句话:

  • 并发(concurrent)同时处理(deal)多件事的能力
  • 并行(parallel)同时做(doing)多件事的能力
  1. 单核CPU下,多线程不能实际提高程序运行效率,只是为了能够在不同的任务之间切换,不同线程轮流使用CPU,不会占用一个线程CPU,其他线程不能工作
  2. 多核CPU您可以并行运行多个线程,但是是否可以提高程序的运行效率仍然取决于情况。设计并执行一些任务,当然可以提高程序的运行效率。但并非所有的计算任务都可以拆分,请参考 ;并非所有任务都需要拆分。如果任务的目的不同,谈论拆分和效率是没有意义的
  3. IO操作不占用CPU,只是我们一般拷贝文件使用得的是阻塞IO,这相当于线程,虽然不需要CPU,但需要一直等待IO最后,没有充分利用线程,所有后面的非阻塞IO和异步IO优化

标签: 2静态交流断电延时继电器zsj

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台