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

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

相关文章

SpringBoot分段处理List集合多线程批量插入数据方式

《SpringBoot分段处理List集合多线程批量插入数据方式》文章介绍如何处理大数据量List批量插入数据库的优化方案:通过拆分List并分配独立线程处理,结合Spring线程池与异步方法提升效率... 目录项目场景解决方案1.实体类2.Mapper3.spring容器注入线程池bejsan对象4.创建

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Python多线程实现大文件快速下载的代码实现

《Python多线程实现大文件快速下载的代码实现》在互联网时代,文件下载是日常操作之一,尤其是大文件,然而,网络条件不稳定或带宽有限时,下载速度会变得很慢,本文将介绍如何使用Python实现多线程下载... 目录引言一、多线程下载原理二、python实现多线程下载代码说明:三、实战案例四、注意事项五、总结引

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Python多线程应用中的卡死问题优化方案指南

《Python多线程应用中的卡死问题优化方案指南》在利用Python语言开发某查询软件时,遇到了点击搜索按钮后软件卡死的问题,本文将简单分析一下出现的原因以及对应的优化方案,希望对大家有所帮助... 目录问题描述优化方案1. 网络请求优化2. 多线程架构优化3. 全局异常处理4. 配置管理优化优化效果1.

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除

Jenkins的安装与简单配置过程

《Jenkins的安装与简单配置过程》本文简述Jenkins在CentOS7.3上安装流程,包括Java环境配置、RPM包安装、修改JENKINS_HOME路径及权限、启动服务、插件安装与系统管理设置... 目录www.chinasem.cnJenkins安装访问并配置JenkinsJenkins配置邮件通知

深入理解go中interface机制

《深入理解go中interface机制》本文主要介绍了深入理解go中interface机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前言interface使用类型判断总结前言go的interface是一组method的集合,不

Java中数组与栈和堆之间的关系说明

《Java中数组与栈和堆之间的关系说明》文章讲解了Java数组的初始化方式、内存存储机制、引用传递特性及遍历、排序、拷贝技巧,强调引用数据类型方法调用时形参可能修改实参,但需注意引用指向单一对象的特性... 目录Java中数组与栈和堆的关系遍历数组接下来是一些编程小技巧总结Java中数组与栈和堆的关系关于

Qt中实现多线程导出数据功能的四种方式小结

《Qt中实现多线程导出数据功能的四种方式小结》在以往的项目开发中,在很多地方用到了多线程,本文将记录下在Qt开发中用到的多线程技术实现方法,以导出指定范围的数字到txt文件为例,展示多线程不同的实现方... 目录前言导出文件的示例工具类QThreadQObject的moveToThread方法实现多线程QC