进程与线程的区别

         作为一个java的初学者,这个问题曾经困扰了我很长一段时间。今天做个随手笔记,一是备忘,二是希望能够帮到和我有一样困惑的人。

         什么是进程Process:进程定义了应用程序与应用程序的边界,是操作系统进行资源分配和调度的基本单元,在windows操作系统中,一个.exe文件就是一个进程,每个进程之间内存是独立的,进程之间是不能共享内存的。进程是线程的一个容器,也就是说一个进程内部可以有多个线程,举个例子:我们在听音乐的时候,可以听音乐和写评论、下载歌曲就是三个不同的线程,这三个不同的线程同属于QQ音乐这个一个进程。

什么是线程Thread:线程让进程内部的并发成为了可能,有些初学者可能像我当初一样有这样的疑问,既然有了进程,那为什么还有有线程呢?答案很简单,为了提高效率。举个例子吧,如果一个进程中只有一个线程,就相当于一条马路只有一个车道,如果走在这条车道的车由于某种原因故障了,后面和你同一方向的车就都走不了,但是如果是三行道四行道,就可以同时执行。效率明显提高(这个例子不太恰当,欢饮大神举更合适的例子)。线程之间有一部分(堆、方法区)内存空间是是可以共享的。

     未完,待续....

你可能感兴趣的:(进程与线程的区别)