0
点赞
收藏
分享

微信扫一扫

01给女朋友讲讲并发编程-基础知识

杰克逊爱学习 2021-09-30 阅读 42
Java学习

一、进程与线程

1.进程

  • 程序是由指令和数据组成。但是这些指令要运行,就需要将指令加载进内CPU,数据加载至内存。在指令执行的过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的
  • 当一个程序被运行,从磁盘加载这个程序的代码到内存中,此时就开启了一个进程。
  • 进程可以视为程序的实例。大部分程序可以有多个进程实例(如记事本,浏览器,QQ),有的也只能开启一个实例(网易云音乐,360安全卫士)

2.线程

  • 一个进程内部可以分为一到多个线程。
  • 一个线程就是一个指令流,将指令流中的一条条指令以一定的顺序交给cpu执行。
  • Java中,线程是最小的调度单位,进程是资源分配的最小单位。在windows中,进程是不活动的,只是作为线程的容器。

二、并行与并发

1.并发

并发(concurrent)是同一时间应对(dealing with)多件事情的能力。

2.并行

并行(parallel)是同一时间内动手做(doing)多件事情的能力。

例子

  • 一个家庭主妇做饭、打扫卫生、给孩子喂奶,她一个人轮流交替做这些事情,这时就是并发。
  • 家庭主妇雇了一个保姆,她们两个同时做这三件事情,这时既有并发,也有并行。(而且会产生竞争关系,比如锅只有一口,一个人使用的时候另一个人就需要等待)
  • 雇了3个保姆,一个保姆专门做饭,一个保姆专门打扫卫生、一个保姆专门给孩子喂奶,互不干扰,这就是并行。

三、线程的应用

1.异步调用

2.提升效率

举报

相关推荐

0 条评论