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

2023-11-29 04:30

本文主要是介绍厕所和多线程有什么关系?读不懂就去上厕所吧。最简单的多线程理解,小白都可以看,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

ok,我们开始吧。

在这里插入图片描述

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

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

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

什么是线程?

什么是线程?
在这里插入图片描述

按照官方的定义:

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

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

在这里插入图片描述

前方持续高能!!!!

SO?WHAT?

这是啥?
在这里插入图片描述

啥玩意?

看不懂啊?
在这里插入图片描述

咋能啊?
在这里插入图片描述

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

没错,说的就是你
在这里插入图片描述

OK,没关系。

在这里插入图片描述

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

在这里插入图片描述

那就是 当

厕所先生

在这里插入图片描述
鼓掌 👏👏👏👏👏

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

布丁:好了好了,厕所先生不要说了,说正经的。
在这里插入图片描述

厕所先生:

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

所以大家只需要记住
在这里插入图片描述

厕所=进程

坑=线程

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

所以程序=屎。所以大家辞职吧。不要写程序了。
在这里插入图片描述
布丁:好了我们说正经的。
在这里插入图片描述

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

是床

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

是桌子

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

是炉灶

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

这里我总结了4点。

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

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

鼓掌 👏👏👏👏👏👏
在这里插入图片描述

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

厕所:干于以上给点,鹅觉得所的灰常得。
在这里插入图片描述

布丁:咳咳,厕所先生,麻烦您先冲下厕所再说话。
在这里插入图片描述

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

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

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

  • 但是如果厕所炸了那么坑也就不能用了。
    在这里插入图片描述

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

在这里插入图片描述

OK,我们第一个问题说完了,那么我们来讲第二个问题吧。
在这里插入图片描述

我们为什么要学习线程?

在这里插入图片描述
厕所先生:要说多线程是干什么用的,又为什么需要多线程呢?那么就要从拉屎开始说起了。
在这里插入图片描述
厕所先生:就比如说我里面只有一个坑。但是呢,恰逢当前学校做的饭有点问题。一个班的同学都拉肚子了。
在这里插入图片描述

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

在这里插入图片描述

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

这就是多线程的好处。我们使用多线程就可以使我们程序效率更高。
在这里插入图片描述

布丁:那为什么不建个几百个坑啊,那岂不更快?
在这里插入图片描述

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

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

厕所先生:没错,就是这样。
在这里插入图片描述
布丁:OK,感谢这一期厕所先生的做客,以他自身的经历给我们讲了

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这篇关于厕所和多线程有什么关系?读不懂就去上厕所吧。最简单的多线程理解,小白都可以看的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/431438

相关文章

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

SpringBoot中使用 ThreadLocal 进行多线程上下文管理及注意事项小结

《SpringBoot中使用ThreadLocal进行多线程上下文管理及注意事项小结》本文详细介绍了ThreadLocal的原理、使用场景和示例代码,并在SpringBoot中使用ThreadLo... 目录前言技术积累1.什么是 ThreadLocal2. ThreadLocal 的原理2.1 线程隔离2

Java多线程父线程向子线程传值问题及解决

《Java多线程父线程向子线程传值问题及解决》文章总结了5种解决父子之间数据传递困扰的解决方案,包括ThreadLocal+TaskDecorator、UserUtils、CustomTaskDeco... 目录1 背景2 ThreadLocal+TaskDecorator3 RequestContextH

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

MYSQL关联关系查询方式

《MYSQL关联关系查询方式》文章详细介绍了MySQL中如何使用内连接和左外连接进行表的关联查询,并展示了如何选择列和使用别名,文章还提供了一些关于查询优化的建议,并鼓励读者参考和支持脚本之家... 目录mysql关联关系查询关联关系查询这个查询做了以下几件事MySQL自关联查询总结MYSQL关联关系查询

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

浅析Rust多线程中如何安全的使用变量

《浅析Rust多线程中如何安全的使用变量》这篇文章主要为大家详细介绍了Rust如何在线程的闭包中安全的使用变量,包括共享变量和修改变量,文中的示例代码讲解详细,有需要的小伙伴可以参考下... 目录1. 向线程传递变量2. 多线程共享变量引用3. 多线程中修改变量4. 总结在Rust语言中,一个既引人入胜又可

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的