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

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

相关文章

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

如何使用Python实现一个简单的window任务管理器

《如何使用Python实现一个简单的window任务管理器》这篇文章主要为大家详细介绍了如何使用Python实现一个简单的window任务管理器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起... 任务管理器效果图完整代码import tkinter as tkfrom tkinter i

C++中函数模板与类模板的简单使用及区别介绍

《C++中函数模板与类模板的简单使用及区别介绍》这篇文章介绍了C++中的模板机制,包括函数模板和类模板的概念、语法和实际应用,函数模板通过类型参数实现泛型操作,而类模板允许创建可处理多种数据类型的类,... 目录一、函数模板定义语法真实示例二、类模板三、关键区别四、注意事项 ‌在C++中,模板是实现泛型编程

Java使用多线程处理未知任务数的方案介绍

《Java使用多线程处理未知任务数的方案介绍》这篇文章主要为大家详细介绍了Java如何使用多线程实现处理未知任务数,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 知道任务个数,你可以定义好线程数规则,生成线程数去跑代码说明:1.虚拟线程池:使用 Executors.newVir

使用EasyExcel实现简单的Excel表格解析操作

《使用EasyExcel实现简单的Excel表格解析操作》:本文主要介绍如何使用EasyExcel完成简单的表格解析操作,同时实现了大量数据情况下数据的分次批量入库,并记录每条数据入库的状态,感兴... 目录前言固定模板及表数据格式的解析实现Excel模板内容对应的实体类实现AnalysisEventLis

JAVA封装多线程实现的方式及原理

《JAVA封装多线程实现的方式及原理》:本文主要介绍Java中封装多线程的原理和常见方式,通过封装可以简化多线程的使用,提高安全性,并增强代码的可维护性和可扩展性,需要的朋友可以参考下... 目录前言一、封装的目标二、常见的封装方式及原理总结前言在 Java 中,封装多线程的原理主要围绕着将多线程相关的操

Java中数组转换为列表的两种实现方式(超简单)

《Java中数组转换为列表的两种实现方式(超简单)》本文介绍了在Java中将数组转换为列表的两种常见方法使用Arrays.asList和Java8的StreamAPI,Arrays.asList方法简... 目录1. 使用Java Collections框架(Arrays.asList)1.1 示例代码1.