java多线程的基本概念

java多线程的相关概念

进程与线程:

  • 进程:一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度运行的基本单位。
    这是官方解释,看起来是比较的抽象,不知道在说什么。我们以windows为例,因为windows是我们都比较熟悉的操作系统,我们打开任务管理器,会看到系统正在运行中的,浏览器,QQ,微信,像这种程序其实就是进程,这样说会不会好理解很多了。

  • 线程:操作系统能够进行运算调度的最小单位。
    这个就更抽象了,什么是最小单位,不过很显然可以看出来线程的范围是小于进程的。一个个的线程组建了进程,线程其实就是每一个任务,打个比方,音乐播放器,既可以同时放mv,又可以播放声音,还可以查看歌曲的留言,这里面的每一个小功能为们都可以看成是线程,当然可能不准确,但是这种解释可以让我们更好的理解线程,理解线程和进程之间的区别。

并行和并发

  • 并行:同一时刻一组程序独立异步地执行。
    这个不是很难理解,就是说在某一个具体的时刻,注意事是时刻,一组程序独立异步的执行,独立和异步这两个词也很关键,也就是说互不干扰,所以说只有多个cpu同时存在,才可以完成这样的事情。
  • 并发:是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。
    很有意思,这个用了一个词是时间段,我们常说的多线程其实就是指的并发,他是可以通过cpu的调度来执行各自的任务,每个线程并不是同时执行的,在一个时刻只有一个线程在执行任务,cpu会在这段时间,分给线程时间片,时间片用完之后会进行线程的切换,其实就是在很短的时间内,进行线程的切换,就会给我们造成一种错觉说他们是同时在执行的。

时间片

时间片指的就是cpu调度的时候分给每个线程或者进行的一段cpu时间,你在这段时间内可以执行任务,时间一到,就必须得停止。通常分配的时间片的时间是很短的。

总结: 经过上面基础概念的理解,多线程就是通过cpu的调度,也就是时间片的分配,让多个线程快速切换,以达到可以不必等到某一个任务从头到尾执行完之后再执行其他任务的目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章