飞道的博客

厕所和多线程有什么关系?读不懂就去上厕所吧。最简单的多线程理解,小白都可以看

477人阅读  评论(0)

小伙伴们大家好啊,这里是布丁萨玛,JAVA多线程也是面试的常客,所以为了之后的面试,也为了使自己能够更好的(zhuang)步(bi)。所以我们一期来看一下什么是多线程。

因为自己也是初学者,并且没有什么项目实习的经验,所以写出来的东西都是自己理解到的东西,但是我们尽量已轻松的方式给小伙伴们讲出来,如果有什么不对的地方,欢迎大家在评论区指(si)出(bi),谢谢。

ok,我们开始吧。

在学习之前,我们首先要搞清楚两个问题。

  • 什么是多线程?
  • 我们为什么要学习多线程?

只有搞清楚这两个问题之后我们才能够有目的的去学习。

什么是线程?

什么是线程?

按照官方的定义:

  • 是一个程序就是一个进程,而一个程序中的多个任务则被称为线程

  • 进程是表示资源分配的基本单位,线程是进程中执行运算的最小单位,亦是调度运行的基本单位。

前方持续高能!!!!

SO?WHAT?

这是啥?

啥玩意?

看不懂啊?

咋能啊?

相信有的小伙伴会和笔者一样刚看到的时候是懵逼的。

没错,说的就是你

OK,没关系。

今天呢,在我们现场,我们请到了世界著名嘉宾,人类最应该感谢得人,被笔者评为世界十大最受委屈的人。

那就是 当

厕所先生


鼓掌 👏👏👏👏👏

厕所先生:大家好,我是厕所先生,今天很高兴,能来到布丁的节目。我要感谢我的母亲

布丁:好了好了,厕所先生不要说了,说正经的。

厕所先生:

  • 这里呢我们就可以把一个厕所当做一个进程,然后呢。里面有好多坑,我们就可以把里面的一个一个坑当做一个进程。而进程就是厕所里面最小的单位。

所以大家只需要记住

厕所=线程

坑=进程

布丁:正如厕所先生所说,进程就是一个坑。但是呢没有这个坑又不行。没有坑那就不是厕所了。

所以程序=屎。所以大家辞职吧。不要写程序了。

布丁:好了我们说正经的。

假如进程是一间宿舍那么线程是什么?

是床

假如进程是一间餐厅那么线程又是什么?

是桌子

假如进程是一个厨房那么线程是什么?

是炉灶

Ok,相信经过上面的这些东西的洗礼,我们就可以大致知道线程进程都有一些什么特点了。

这里我总结了4点。

  • 1、进程只能有一个,线程可以有n个
  • 2、进程包含线程
  • 3、多个线程可以同时执行
  • 4、多个线程之间不会互相影响
  • 5、进程结束,线程必定结束

关于上面几点,我们就用我们就请出我们最贵的厕所来解释一下。

鼓掌 👏👏👏👏👏👏

布丁:那么请问厕所先生,您对于上面几点有什么想说的呢?

厕所:干于以上给点,鹅觉得所的灰常得。

布丁:咳咳,厕所先生,麻烦您先冲下厕所再说话。

厕所先生:哗啦啦~~,咳咳,关于以上几点啊,我觉得说的非常对。

  • 一个厕所最少要有一个坑,否则就不是厕所。

  • 同时我的每个坑都可以同时使用。如果一个坑炸了,别的坑也可以使用。

  • 但是如果厕所炸了那么坑也就不能用了。

布丁:好的,厕所先生说的非常好。如果还有小伙伴不懂得话,麻烦出门左转去厕所体验一下。

OK,我们第一个问题说完了,那么我们来讲第二个问题吧。

我们为什么要学习线程?


厕所先生:要说多线程是干什么用的,又为什么需要多线程呢?那么就要从拉屎开始说起了。

厕所先生:就比如说我里面只有一个坑。但是呢,恰逢当前学校做的饭有点问题。一个班的同学都拉肚子了。

  • 如果是单线程的情况那么一个同学去拉屎了,然后其他同学就只能等着,如果这个同学拉的快还好说,如果不快,那不就尴尬了。是吧。

  • 这里呢如果我们有了多线程的话,那就会多好多的坑,
  • 那么同学们就可以愉快的一起上厕所了,你不影响我,我不影响你。

这就是多线程的好处。我们使用多线程就可以使我们程序效率更高。

布丁:那为什么不建个几百个坑啊,那岂不更快?

厕所先生:我没意见啊。那到时候整个学校怕不如直接改名叫厕所得了。

布丁:我明白了,线程多是会占用我们的资源的。所以我们要在性能和资源之间找到一个平衡点

厕所先生:没错,就是这样。

布丁:OK,感谢这一期厕所先生的做客,以他自身的经历给我们讲了

  • 什么是多线程?厕所=线程 坑=进程
  • 我们为什么要使用多线程?为了防止拉屎等很久

那么本期就到此结束了,我们下一期就来讲下如何实现多线程,到时候可能还需要厕所先生来做客。小伙伴们有什么想说的。可以在评论区告诉我们。谢谢。




转载:https://blog.csdn.net/m0_37859502/article/details/105546490
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场