栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

程序进程线程,傻傻分不清楚

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

程序进程线程,傻傻分不清楚

大家好,我是吴99同学。

今天我一位朋友久66问我:作为一个程序员,你能解释一下什么是程序吗?

这。。。我一下子就懵了啊!作为一个人,你天天呼吸空气也不懂怎么定义空气啊!什么生物会问这种奇葩的问题a?(久66答:面试官)好吧,我基础不牢也不是什么众所周知的事了,该补补课看看什么是程序,还有(老是跟它形影不离的)进程和线程。看书是不可能看的,找了下北航康师傅的视频吸收一下大佬的精髓。

当然,以下内容主要是自己的理解(主观中带一丢丢客观),谨慎服用。


程序 vs 进程 vs 线程

写代码的目的最主要还是要完成某一个特定的任务,而为完成这个任务熬的无数夜晚写的代码指令集和,就是程序,指的是一些静态的代码。当它运行起来,我们就有了一个进程(动态)。如果进程被终止,那么这个进程也就没了,但程序还是存在的。

当程序运行起来,我们也就在往完成任务的方向一步步前进。但正如公司中为追求效率,术业有专攻,程序员就写代码,清洁人员就清洁,老板就?(不知道,没见过我们老板)。在程序里我们为了提高效率,也会将任务分配给不同的“人”来做,就是一个进程可以有多个不同的线程,它们是程序内部不同的执行路径。

单线程就像是自己开了个小卖部,什么事都需要亲历亲为。而多线程就像是在一个公司(进程)里,不同部门(线程)有着各自的小任务,服务于一个大的任务。我们每个java程序最少都有主线程(main)和垃圾回收线程(gc),在主线程办事不停造对象的时候,同时需要有一个背后的清洁阿姨默默帮它清理那些不用的对象。

在java中,线程与线程之间有共享的部分,也有独立的部分。比如,栈是各自一份的,就像每个人的工位。而堆和方法区是共享的,比如说厕所。(有兴趣的可以看看JVM相关知识)

 

* 以上为自己的理解。如有不当之处,还望各位大佬指正  :>

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340683.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号