进程与线程的区别

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

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

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

     未完,待续....

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容