最新要闻
- 视焦点讯!努比亚Z50散热堆料离谱:散热总面积达到36462m㎡
- 中国光纤之父赵梓森逝世 享年91岁:拉出了我国第一根光纤
- 世界观热点:苹果妥协了!将开门迎接第三方应用商店 用户褒贬不一
- 杭州疑似有陨石掉落:一团火球 照亮夜空
- 《隐秘的角落》游戏来了:Steam版定档明年1月18日
- 【时快讯】可以薅羊毛了!网易云音乐TV版正式上线:免费送3个月会员
- 天天快报!男子花12万买世界杯彩票没中要求退款 理由气煞店老板
- 天天热头条丨微信全新朋友圈点赞互动广告上线:点下就能放烟花秀
- 天天热资讯!下单15分钟送到:上海开通首条美团无人机常态化航线
- 环球关注:IMDb 8.2分!《阿凡达2》口碑爆棚 影院回应票价高:消费者不缺钱缺服务
- OPPO Find N2 Flip外屏惊艳:支持快捷回复、锁屏小游戏
- 第二家通吃NVIDIA、AMD、Intel的显卡品牌诞生!这也太贵了
- 天天实时:公牛发布航天级品质超薄插座:可承受2万次拔插
- 环球微头条丨跌破零下40度!内蒙古出现极寒冰雾天气:冷到“冒白烟”
- OPPO Find N成为全国销量第二折叠屏!一经发布就大获成功
- 微速讯:首次使用钛合金螺丝!OPPO Find N2仅233g:折叠屏比iPhone还轻
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
17 Java内存模型与线程_Java与线程
- 1 线程的实现
- 1.1 内核线程实现
- 1.2 用户线程实现
- 1.3 用户线程加轻量级进程混合实现
- 2 Java线程实现
- 3 Java线程调度
- 3.1 协同式线程调度
- 3.2 抢占式线程调度
- 3.3 Java线程优先级
- 4 Java线程状态
- 5 为什么内核线程调度切换成本更高?
- 5.1 成本在哪里
- 5.2 什么是上下文
- 5.3 线程切换的成本分析
- 6 Java线程模型面临的困境
- 7 学习收获
1 线程的实现
主流操作系统都提供线程的实现,在这基础上,上层应用可以构建自己的线程实现方式(Java、php、go的线程实现各不一样)。三种线程实现方式:内核线程实现(1:1实现),用户线程实现(1:N实现), 用户线程加轻量级进程混合实现(N:M实现)
1.1 内核线程实现
内核线程:直接由操作系统内核支持的线程:
角色说明:
【资料图】
- 操作系统:内核、线程调度器、轻量级进程接口
- 内核:创建内核线程、创建轻量级进程(线程)
- 线程调度器:由内核控制,进行线程调度和任务派发
- 处理器:执行线程任务
- 内核线程:由内核创建管理
- 轻量级进程:由内核创建的,面向应用程序的线程。由内核线程一对一支持
工作流程:
- 应用程序通过轻量级进程接口,提交创建线程请求,连同任务内容传入内核
- 内核接收到线程创建请求,创建内核线程,同时创建面向应用程序的线程。线程与内核线程为1:1
- 内核控制线程调度器,将内核线程分派处理器,由处理器执行线程任务
应用:Java
1.2 用户线程实现
定义:完全建立在用户空间的线程库上,用户线程的建立、同步、销毁和调度完全在用户态中完成,不需要内核的帮助。
优点:不需要在内核态和用户态来回切换,因此快速且低消耗缺点:线程的创建、销毁、切换和调度等操作都由用户实现,复杂应用:Golang、Erlang等以高并发为卖点的编程语言,支持用户线程
1.3 用户线程加轻量级进程混合实现
定义:将内核线程与用户线程一起使用优点:综合了两者的优点应用:一些UNIX系列的操作系统,如Solaris、HP-UX
2 Java线程实现
采用:内核线程实现(1:1实现)
HotSpot:每个Java线程映射到一个操作系统原生线程来实现,虚拟机不会干涉线程调度(可以设置线程优先级给操作系统提供调度建议),全权交给操作系统去处理,包括:何时冻结或唤醒线程、该给线程分配多少cpu时间片、该把线程分给哪个处理器核心去执行。
注意:《Java虚拟机规范》没有限定线程采用什么模型来实现
3 Java线程调度
线程调度:系统为线程分配CPU使用权的过程,调度主要方式有两种,协同式线程调度、抢占式线程调度
3.1 协同式线程调度
方式:执行时间由线程自身来控制,执行结束要主动通知系统切换到其它线程优点:简单、不会有同步问题缺点:一个线程有异常会导致系统停顿应用:Lua语言中的“协同例程”
3.2 抢占式线程调度
方式:线程将由系统来分配执行时间,线程的切换不由线程本身来决定。优点:不会因为一个线程异常导致系统停顿应用:Java语言。
3.3 Java线程优先级
Java多线程环境下:
- 允许设置线程优先级给OS提供调度建议:处于Ready状态的线程,优先级越高的越容易被执行。
- Thread::yield()方法可以主动让出执行时间
- Java线程不能主动抢占执行时间 【只能让出】
设置线程优先级非完全可靠:
- OS可能会越过外部设置的优先级(Windows:“优先级推进器”:当系统发现一个线程被执行得特别频繁时,可能会越过线程优先级去为它分配执行时间)
- Java的线程优先级跟OS的线程优先级可能不匹配(Java10种,windows7种)
4 Java线程状态
六种状态:
新建(New):创建后尚未启动的线程处于这种状态
运行(Runnable):处于此状态的线程有可能正在执行,也有可能正在等待着操作系统为它分配执行时间。
无限期等待(Waiting):处于这种状态的线程不会被分配处理器执行时间,它们要等待被其他线程显式唤醒。触发情形:
- 没有设置Timeout参数的Object::wait()方法;
- 没有设置Timeout参数的Thread::join()方法;
- LockSupport::park()方法
限期等待(Timed Waiting):处于这种状态的线程也不会被分配处理器执行时间,不过无须等待被其他线程显式唤醒,在一定时间之后它们会由系统自动唤醒。触发情形:
- Thread::sleep()方法;
- 设置了Timeout参数的Object::wait()方法;
- 设置了Timeout参数的Thread::join()方法;
- LockSupport::parkNanos()方法;
- LockSupport::parkUntil()方法。
阻塞(Blocked):线程被阻塞了,“阻塞状态”与“等待状态”的区别是“阻塞状态”在等待着获取到一个排它锁,这个事件将在另外一个线程放弃这个锁的时候发生;而“等待状态”则是在等待一段时间,或者唤醒动作的发生。在程序等待进入同步区域的时候,线程将进入这种状态。
结束(Terminated):线程已经结束执行结束
线程状态转换关系:
5 为什么内核线程调度切换成本更高?
5.1 成本在哪里
内核线程的调度成本主要来自于用户态与核心态之间的状态转换,而这两种状态转换的开销主要来自于响应中断、保护和恢复执行现场的成本
5.2 什么是上下文
- 程序员视角:方法调用过程中的各种局部的变量与资源
- 线程视角:方法的调用栈中存储的各类信息;
- 操作系统和硬件的视角:存储在内存、缓存和寄存器中的一个个具体数值
5.3 线程切换的成本分析
假设发生了这样一次线程切换:
线程A -> 系统中断 -> 线程B
成本分析:
- 已知1:程序的运行是代码+数据的组合,数据保存在“上下文”中
- 已知2:各种存储设备、寄存器是被操作系统内所有线程共享的资源
- 当中断发生,从线程A切换到线程B去执行之前,操作系统首先要把线程A的上下文数据妥善保管好,然后把寄存器、内存分页等恢复到线程B挂起时候的状态,线程B被重新激活并继续执行
- 保护和恢复现场的过程,涉及一系列数据在各种寄存器、缓存中的来回拷贝,这边便是成本所在
6 Java线程模型面临的困境
已知:Java采用1:1的内核线程模型
以前:单体应用,处理一个请求允许花费很长时间在单体应用中,线程数量少,线程切换的成本低
当下:微服务,服务数量多,线程数量也变多
矛盾:每个请求本身的执行时间变得很短、数量变得很多的前提下,用户线程切换的开销甚至可能会接近用于计算本身的开销,这就会造成严重的浪费。
7 学习收获
Java程序面向用户线程,操作系统管理内核线程,内核线程和用户线程1:1对应关系
保护和恢复现场的过程,涉及一系列数据在各种寄存器、缓存中的来回拷贝
17 Java内存模型与线程_Java与线程
视焦点讯!努比亚Z50散热堆料离谱:散热总面积达到36462m㎡
中国光纤之父赵梓森逝世 享年91岁:拉出了我国第一根光纤
世界观热点:苹果妥协了!将开门迎接第三方应用商店 用户褒贬不一
杭州疑似有陨石掉落:一团火球 照亮夜空
环球要闻:AIRIOT答疑第2期|如何使用物联网平台的数据采集与控制引擎?
《隐秘的角落》游戏来了:Steam版定档明年1月18日
【时快讯】可以薅羊毛了!网易云音乐TV版正式上线:免费送3个月会员
天天快报!男子花12万买世界杯彩票没中要求退款 理由气煞店老板
天天热头条丨微信全新朋友圈点赞互动广告上线:点下就能放烟花秀
天天热资讯!下单15分钟送到:上海开通首条美团无人机常态化航线
世界速读:BaseDet: 走过开发的弯路
今日热门!引迈信息荣登「2022低代码企业50强」:JNPF,你的不二选择!
环球关注:IMDb 8.2分!《阿凡达2》口碑爆棚 影院回应票价高:消费者不缺钱缺服务
OPPO Find N2 Flip外屏惊艳:支持快捷回复、锁屏小游戏
第二家通吃NVIDIA、AMD、Intel的显卡品牌诞生!这也太贵了
天天实时:公牛发布航天级品质超薄插座:可承受2万次拔插
环球微头条丨跌破零下40度!内蒙古出现极寒冰雾天气:冷到“冒白烟”
环球微速讯:SQL的使用总结
天天快资讯:WPF深入简出(一)入门必看
观热点:【机器学习】李宏毅——浅谈机器学习原理+鱼与熊掌兼得的深度学习简述
当前动态:前后端AES加密解密,CryptoJS和Java实现
热讯:记录--手把手带你开发一个uni-app日历插件(并发布)
OPPO Find N成为全国销量第二折叠屏!一经发布就大获成功
微速讯:首次使用钛合金螺丝!OPPO Find N2仅233g:折叠屏比iPhone还轻
OPPO Find N2内外一致好屏:双120Hz+双E6 可自由悬停
让玩家心动的定制 ROG 6游戏手机《暗黑破坏神:不朽》典藏限量版图赏
OPPO Find N2 233g比直板机还轻!央视点赞:刷新折叠屏手机新纪录
【世界速看料】LeetCode HOT 100:旋转图像
环球头条:特斯拉中国上线490元酒杯 限量卖 网友吐槽智商税
世界今日讯!女子连吃5天感冒药 多脏器功能衰竭:专家提醒小心这些症状
IT工程师哪里工资最高?美国仅排第二 第一收入超过70万
天天看热讯:帧数暴涨40%!《巫师3》次时代版画质优化指南
20万级大杀器 长安深蓝首款SUV曝光:增程、纯电全都有
【天天速看料】Shell 标准输入和输出
信息:公司新来一个同事,把网关系统设计的炉火纯青!(万能通用,稳的一批。。)
当前视讯!易基因|NSUN2介导RNA m5C修饰促进食管鳞状细胞癌进展的表观调控机制 | 肿瘤研究
ThingsBoard前端项目的安装与启动
【时快讯】RELIC库学习
全球看热讯:喜讯+1!袋鼠云数栈技术团队获“2022年度优秀开源技术团队”
投影仪的工作原理是什么?投影仪排名前十的品牌
Centos安装Nginx
针孔无线摄像机怎么连接?针孔无线摄像机怎么用?
本地连接受限制或无连接是怎么回事?本地连接受限制或无连接怎么解决?
svchost.exe占用cpu过是什么原因?svchost.exe占用cpu过高解决方法
pdf文件打开是乱码怎么回事?pdf文件打开是乱码时该怎么办?
男主角是明星的小说有哪些?男主角是明星的小说推荐
科比最后一场比赛是什么时候?科比最后一场比赛是多少分?
鞋子防臭的小妙招有哪些?鞋子防臭喷雾哪个牌子好?
沙棘如何鉴别好坏?沙棘的功效作用与主治是什么?
玉碎了代表什么征兆?玉碎了有什么办法修复吗?
英雄联盟更新慢是什么原因?英雄联盟更新慢怎么办?
怎么才能加快迅雷的下载速度?加快迅雷下载速度的方法有哪些?
全球讯息:阻止Windows未知应用弹窗的一种思路方法
Zabbix6.0使用教程 (四)—zabbix6.0从源代码安装
Tomcat工作原理
小键盘指法是什么意思?小键盘指法包括什么键?
iphone13如何添加公交卡?iphone13添加公交卡的方法有哪些?
安卓系统的手机有哪些?安卓系统的手机有哪些牌子好?
天天快讯:针对某钓鱼网站的渗透测试
【脚本项目源码】Python制作桌面宠物,这么可爱的萌宠你不想拥有吗?
今日热议:4999元 小米13限量定制色明天首销:只有5万台
环球焦点!中国民营火箭朱雀二号发射失利 全球首型轨道飞行的甲烷火箭
当前播报:QQ邮箱推实用新功能:英文文档一键即可翻译
【报资讯】丰田凯美瑞看呆!新一代本田雅阁实车曝光:比思域还运动
撞到快报废!特斯拉高速追尾大货车 司机身亡:现场视频速度快到可怕
单手就能用的折叠屏旗舰!OPPO Find N2今天发布:比直板机还轻
环球视讯!反对无效!日本投放广告宣传福岛核污水安全性:必须排海
【环球播资讯】我国成功发射遥感三十六号卫星!长征火箭年发射数首次迈上50大关
【环球速看料】适合男女双打 这三款游戏拉近你和她的距离
焦点滚动:腾讯互动阅读App《一零零一》宣布将停运:补偿方案出炉
环球新动态:显卡不会便宜了?NV要发新RTX 4080、4090:移动版也万元节奏
世界新消息丨法国2-0摩洛哥 决赛战阿根廷!网友发现规律:姆巴佩进球就不会输
快消息!Vue核心概念与其指令
Wireshark使用笔记
焦点!Zabbix监控系统
世界快资讯丨Kubernetes Volumes 笔记
取代奔腾/赛扬!Intel 12代Alder Lake-N处理器来了:清一色小核、超低功耗
环球即时看!德国樱桃收购瑞典外设品牌Xtrfy:对方只有12人
当前信息:国六B汽油要全面上线了!听说这玩意又贵又不耐烧?
环球关注:Wi-Fi 7:明年下半年见
天天看点:App流畅度提升88%!小米承诺:所有升级MIUI 14机型均支持光子引擎
全球要闻:雷军:全面对标苹果iPhone 一个新的小米开始了
环球滚动:[WPF] MediaElement播放HDR视频泛黄、颜色显示不正确应该如何解决?
R数据分析:冲击流图与热图的做法以及多图布局
简讯:VUE简介
天天微头条丨意外之喜:苹果给iPhone 6s/7推送iOS 15.7.2系统更新
焦点精选!脱口秀演员直播带货:想得美好
直播:今年最后一场大型流星雨来了!双子座流星雨压轴登场
游戏性能被RX7900反超?《巫师3》次世代版4090光追演示
天天信息:摩托罗拉×潘通 “非凡洋红”限定版新机来了
Python3.7.3环境搭建
全球观点:哈希表总结
当前报道:2022 ICPC 杭州站 K - Master of Both // Trie
RTX 4080为何要定价这般高?背后原因揭开
【环球热闻】面对矿卡 老黄已经悄悄带头冲锋了!一箭双雕 真是绝了
环球短讯!旧版微博拜拜:大量用户被直接改为新版界面
全球新动态:工信部出手!手机预装App终于能卸载了:2023年执行
切勿模仿!男子让幼儿握方向盘开车还拍摄炫耀:扣3分、罚200
4G已够用 美国运营商推5G陷入麻烦:4200亿投资难赚回来