IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java基础巩固-宇宙第一AiYWM:为了维持生计,多高(多线程与高并发)_Part1~整起(线程与进程篇) -> 正文阅读

[Java知识库]java基础巩固-宇宙第一AiYWM:为了维持生计,多高(多线程与高并发)_Part1~整起(线程与进程篇)

这个题目我感觉很多大哥大姐和我一样,虽然夹在众位大哥大姐中跟着一块喊着“多线程与高并发”的口号,但是这里面其实包含的东西并不像名字里面这么少。现在就开始咱们的旅程吧。
首先,得慢慢请出咱们多高这部戏的主角,先是“打手”(打手来源见JVM_Part3中扫垃圾时,打手咋跑出来了)
咱们OS在分配资源时:

  • 把(除CPU之外的资源)内存等资源分配给进程
    • CPU中有PC、寄存器们等,关于CPU的结构以及具体的工作方式大家可以网上看看,知道CPU是干啥的玩意就行
  • OS把CPU分配给线程

提到这两个重要的点,可能大家和我一样会有疑问,为啥要这样分呢。(我之前关于JVM的部分中也有提到,大家可以去翻翻)我感觉就一句话,一个进程中生活着很多个线程,线程们是真正占用CPU资源去运行或者说执行进程中的各个任务呢。比如说 咱们打开了一个应用程序比如QQ,相当于咱们现在开启了一个进程,那么QQ里面咱们是不是存在很多小的任务比如聊天呀听音乐呀种个菜呀发个邮件呀等等(当然可能不是这么分的,大家理解意思就好),整个QQ应用程序中的多个小任务都得生活在进程中的多个线程来执行。而OS中一般是CPU来执行任务的。所以,精准定位,把CPU分配给线程不就刚好了,那么这么多线程不就可以带着自己趁手的兵器(方天画戟)就打怪闯关了。此时,咱们的打手也找到自己的称手的兵器的,可以开打了。
老规矩,图这道菜咱们是不能少的。
在这里插入图片描述
那既然进程提供了闯关的场景,让各个打手大显身手,施展自己的武艺。那么打手们玩的兵器、用的功夫肯定大不相同,所以,上菜。
在这里插入图片描述
屏幕前的观众小胡和敏小言(观众来源可以看看前面JVM的双亲委派机制那里JVM的双亲委派机制)看不下去了。说:你上的这道菜不全呀,你看菜里面有打手状态、分类啥的,你给咱上上来看看呀。
掰急呀,这就来。
在这里插入图片描述
打手出生->打手带着配备的兵器和学到的手艺去闯关做任务(打手做任务过程中会遇到三个挫折,幸亏菩萨给了三根毫毛才能顺利活到最后)->打手完成任务退出圈子。那咱们具体看看这个过程到底是怎样…

public enum State{
	NEW,
	RUNNABLE,
	BLOCKED,
	WAITING,
	TIMED_WAITING,
	TERMINATED;
}
  • 打手的不同的生命状态或者说生活状态其实是别人眼中的不同一个变量不同的值而已,细思极恐有木有…

不感慨了,说到打手的出生,其实大家都一样嘛,生下来,被起名字,被”给“性别啥的。
在这里插入图片描述
打手长着长着长到了一米八,然后自己划着船去岛上学了武,学完之后师傅告诉他,你快回去吧,回去了不要告诉别人我是你的师傅哦。
在这里插入图片描述
这里面主要就是打手闯关的时候关口都是一夫当关万夫莫开,所以每次只有一个打手可以去打,其余的只能在门外先排个队等着。
队伍中的第二个打手受不了了,肿么肥事嘛,这么长时间咋还没过去。里面的正在占着关卡闯关的打手大声向外边喊着,别站着急呀,我这不是占着还没弄完呢嘛,我没弄完你其他人就不能进来哦
况且,我闯完,下一个也是人家坐在贴着同步队列标志的、那个离门最近的那个椅子上的那个哥们进来执行呀,你这还在队伍中第二个位置呢你急啥。
这个挑事的对手灰溜溜的转头走了,坐到了离门比较远的那排椅子上的第一个位置上。

正在里面闯关的打手心想,我容易嘛我,进了关卡后谁知道还有三个里屋呢,谁知道进哪个呀?不管了,乱敲一个吧。
他敲了一个门上贴着synchronized的里屋,里面有人喊了一身,别敲了有人…

  • 原来还有打手在关卡里面,谁知道里面还有比他还先到的,人家已经进入里屋了,把门给锁了,他也只能在里屋外面等,人家里屋里面的打手执行完任务把钥匙扔出来他才可以把里屋门打开进入里屋去。
    在这里插入图片描述
    这个打手又敲了第二个里屋的门,里面的人说:
  • 由于我执行了下面图中左边红框中那些方法,所以这个屋被我占了,别人就不能进来了,包括你。
  • 开门的方法就是右边那些红框,你仔细看看,时机成熟自会有高人帮你开门。
    在这里插入图片描述
    打手看了一会
    十分钟后…
    打手说,算了,你这估计还得等一会呢,我先去下个屋看看吧
    在这里插入图片描述
    还没等打手走到第三个里屋门口呢,里面从门缝里扔出来一幅图。
    打手说:好好好,你不用说了,是不是你执行了上面这俩方法,把这件房间占了
Object.wait()
Thread.join()

我必须实现下面三件事才能开这间门,然后,等你出来,我再进去。
里面飞出来俩字…嗯呐
你们这都是啥规矩呀,真奇怪。
打手实现受不了了,就说,不行,你今天必须给我说一下你这XXX.wait()到底发生了什么,凭什么你执行一下这个就表示你占了这块一亩三分地呢?
里面那个又继续说,嗯呐。第三个屋是这样的,给你再看幅这第三间屋的设计原理图你就懂了。
在这里插入图片描述
打手:你上面那个第二个还没展开哟,你别想蒙我
嗯呐:这就来这就来在这里插入图片描述
打手说,你们这也太复杂了吧,那你们是不是和我一样,有生有终呢?
嗯呐:那肯定呀,上菜
在这里插入图片描述
嗯呐:这样吧,看你在外边等了半天了,给你点吃的,你先享用,我们三个里屋你可能得得好一会了
在这里插入图片描述
打手便坐在门外吃了起来
小胡和敏小言:啊,完了,这就完了,还有没有呀?
打手,估计线程就到这了,下篇就该进程了…翻了个身睡了过去
小胡:梦话?
敏小言:估计是,都翻B面了都。老公,那咱们也去吃饭吧,吃完来再看。
走喽…

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-01-28 11:45:25  更:2022-01-28 11:46:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:58:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码