00:00
那么这块呢,这个。进程和进程之间,大家注意听一下啊,就是进程就是对应一个软件嘛,对吧,来大家看啊,这是一个进程。什么意思啊,点开启动任务管理器啊。我们来看一下温加RCMD敲进去,我敲回车,各位啊,看这里会不会多一个进,多一个进程啊,来点确定。看看这里会不会多一个?CMD看见了吗?CMD点右键我们结束一下进程,点结束你看就关闭了吧。是不是一个进程就是对应一个应用,对应一个软件呀。对吧,哎,对应一个软件,各位啊,一个进程就是对应一个软件啊。那么线程是什么呢?线程是你进程当中的一个执行单元,或者叫执行场景。我给大家举个例子啊,举个例子。就进程和线程是什么关系?举个例子。好,我们大家比如说我们这个,呃。
01:06
比如说百度吧给百度了,淘宝吧淘宝啊淘宝,淘宝是阿里巴巴。旗下的对不对,哎,我们认为阿里巴巴就是一个什么。就是一个进程。你你明白吗?然后阿里巴巴有很多员工马云,马云呢,就是一个县城,是属于阿里巴巴的一个县城。然后呢,这个阿里巴巴的前台叫什么。我记得好像好像是也也很很牛的一个人啊。来,咱们。看看啊。阿里前台。啊,叫童文红是吧,来。那。童文红呢,它也是阿里巴巴的一个县城。
02:04
你明白吧?那么京东呢,京东也属于什么呀?京东商城啊,这个京东是吧,它属于一个进程,明白什么意思吧,其中的那个。强。是吧,哎,强东呢,就属于什么呀,属于京东的一个。县城啊,妹妹属于什么呀?也属于京东的一个县城啊。那么这个其实进程就可以理解成是公司。县城呢,就可以理解成是公司当中的员工。理解这意思吧。就是进程。可以看作是现实生活当中的。公司进程可以看作是现实生活当中的公司啊,线程可以看作是公司当中的。
03:09
某个员工注意啊,进程A和进程B的内存独立,不共享。这一点大家要注意。进程A和进程B的内存独立不共享。就什么阿里巴巴和京东资源不共享,明白什么意思吧?资源不共享啊,阿里巴巴和京东资源不会共享的,就这个意思啊,内存独立不共享,那县城A和线程B呢。他们的执行的内存共享不共享呢。就比如说强东和妹妹,她这个共享资源吗。马云和童文红。
04:01
他应该有一部分是共享的,有一部分不是共享的,对吧。你比如个人的小秘密,他会共享吗?不会吧。童文红,他。应该是有一个个人的秘密,对不对。哎,马云应该也有自己的小秘密,对不对?有些东西他可能不共享,但有一些东西对于阿里巴巴本身来说,他们两个是不是都是共享阿里巴巴的。对吧,那线程A和线程B呢,那注意啊,在Java语言中。我直接说Java了啊,线程A和线程B。堆内存和方法区内存共享。明白吧,哎,但是占内存独立一个县城一个站。一个站,以前我们画图的时候,大家还记不记得我们。怎么画图啊,都是。
05:00
画一个Java虚拟机,画一个方法区,一个堆,然后画一个站是不是,哎,对不起,以后呢,我们从下午开始啊,我们就不是一个站了。你启动多个线程是多个站。你启动两个线程,两个站,三个线程是三个占空间。这个站在压站谈站,这个站同时也在压站谈站,这个站也在压站和谈站。这三个站,S1S2和S3这三个站同时齐头并进并发,S1不用管S2 S2也不用管S3 S3不用管S2 S2也不用管S1,谁也不用管谁。明白吧,并发执行,这叫多线程并发。但是一定要记住,这个堆还有这个方法区只有一块。啊,这个是只有一块的,这是一个线程一块儿,所以要注意多,对于多线程来说,堆内存和方法去内存是共享的,但占内存是独立的。
06:02
啊,占领读一个县城一个站,注意各位啊。这个是进程和线程的关系。啊,进程的关系,阿里巴巴是一个进程。京东也是个进程。进程这个公司有很多员工,每个员工是一个线程啊,所以说进程和线程之间的关系呢,大家要理解一下,进程A和进程B的内存独立不共享。对吧,举个例子,比如说魔兽游戏。我们叫做魔兽啊,游戏是一个什么进程,对吧,那叫做搜狗音乐。或者叫酷狗音乐是一个什么呀,进程对吧,这两个进程是独立的,不共享资源啊,不共享资源。对,进程就相当于一个Java虚拟机啊,线程A和线程B呢,线程A和线程B,那这个在我们的内存方面,多内存和方法区内存由于只有一块,所以这个和这个是共享的啊,占内存独立,大家记住啊,背会这讲了一个非常非常重要的东西啊,占内存独立。
07:21
假设启动十个线程,会有十个站空间。每个站。每个站和每个站之间。互不干扰,互不干扰啊,互不干扰。明白吧,各自执行各自的。这就是什么呀,多线程并发。啊,来火车站。可以看作是一个进程。
08:03
火车站中的每一个售票窗口可以看作是一个县城。明白吧,火车站中每一个售票窗口可以看作是一个县城。你好想一想啊。我在A窗口,我在窗口一购票。你可以在什么呀,窗口二购票,你不需要等我,我也不需要等你。所以多线程并发可以提高什么效率?Java程序,Java中之所以有多线程机制,目的就是为了提高程序的处理速,处理效率啊处理效率。你比如说我们公司吧,咱们动力节点。是吧,哎,咱们动力节点每天早晨来了之后呢,哎,我呢是干什么呀,是负责教学管理的。
09:05
对吧,哎,那个我们公司的保洁这个大姐呢,她是负责我们公司保洁的,对不对,那我们的这个老大呢,把我们都招进来,招进来干啥呀?哎,就相当于我们是每一个都是个县城啊是不是,那这样的话,我来了之后,我打卡开始上班,保洁大姐呢,她也干什么呀?哎,打卡开始上班是不是我们两个县城互不干扰,他打扫他的卫生,我做我的教学管理。两个线程同时并发,可以提高公司的一个呃效率啊,可以提高公司的一个效率啊,那同样我们这个程序也是一样的啊,多线程的目的是什么呢?是为了提高我们程序的一个处理速度啊,或者是处理效率而存在的一种机制,但这但这里呢,我给大家讲了讲什么是进程,什么是线程。就进程,这就是进程。摆在你面前这一个一个都是进程。啊,那我们在这里去执行Java程序,其实也是一个进程,各位。啊。Java虚拟机启动就是一个启动一个进程,然后呢,Java虚拟机会启动一个主线程去调门方法,再启动一个垃圾回收线程,去负责看护回收垃圾。
10:09
啊,就最起码我们现在这个Java程序至少有两个线程,一个是垃圾回收线程,一个是执行笨方法的主线程,是这样啊是这样的。好了,那这这是关于什么呀,关于咱们这个进程和线程的一个理解,希望我在这里举的这个例子啊,大家能够理解啊,能够理解咱们这个啊,什么是线程啊,什么是进程啊,线程是进程当中的一个执行场景啊,执行场景或者执行流程。啊,你想想这阿里巴巴和京东是吧,它属于晋城里面的员工,每个员工都属于县城县城对吧,县城县城你能想象到吧,这里你看有三个县城在压站谈战,压站谈战,压站谈战,压站谈战,压站谈战,压站谈战,这个呢,压站战,压站战,压站战压战,你执行你的,我执行我的对不对?好,那我问大家个问题啊,从我们今天下午开始讲这个内容。
11:02
我问大家,自从加入多线程之后,是不是以后问方法结束程序也不一定结束了,对吗?大家思考一个问题啊,可以思考一个问题。思考一个问题啊。就是说使用了多线程机制之后,闷方法结束。是不是也可能,是不是有可能程序也不会结束。方法结束,只是主线程结束了。明白吧,只是主线啊结束了。主战。主战空了。其他的站。或者叫县城。可能还在干什么呀,压战谈战。
12:01
啊。就是你现在不是一个主线程执行,这是主站吗?你压站台站焖方不是在占底吗。对吧,哎,慢慢在占底,那如果你启动了别的线程,那你这个线程启动之后,就相当于你有别的占空间啊,那你有别的占空间,大家想一想,这个在这压占弹战,你这个闷方法虽然结束了,只是这个站空了,我这个站是不是有可能还在压站弹战,那这过程就没有结束啊。对吧,所以说呢,可能会颠覆大家一种看法啊,那么以后我们呢,肯定都是基于多线程的方式。因为单线程的处理速度太慢。单线程处理速度太慢,明白什么意思吧?哎,我们采用多线程的处理方式啊。
我来说两句