最新要闻
- 受贿1992615.31元!陈克祥一审获刑三年半! 热讯
- 当前视点!萍乡一值班保安多次盗窃工地财物 获刑并处罚金
- 全球信息:重庆沙坪坝:检察建议督促行政机关及时治理危险文具
- 世界聚焦:物质是什么意思标准答案(物质是什么)
- 临汾市2023年妇幼保健机构院长例会顺利召开
- 丰原药业:公司没有顺铂产品
- 快报:网约车复苏趋势已来!T3出行发布年轻化战略,超级出行APP是亮点
- 名创优品早盘涨超6% 机构指公司海外市场业务持续增长-环球今头条
- 6月7日LME铅库存较前一日持平|聚焦
- 机构:高学历房产经纪人占比提升 40岁以下经纪人占比八成 观焦点
- 每日快看:【收评】白糖日内上涨1.48% 机构称白糖短期内外出现劈叉
- 天天简讯:小米14系列两大新升级曝光!消灭多年遗憾
- 全球快消息!OLED+彩色水墨屏二合一:联想新ThinkBook Plus Twist来了
- 这几个电脑硬件可以买二手:分分钟省1000元|天天热门
- 每日热讯!4K 160Hz+双HDMI 2.1白菜价 27寸mini LED显示器2929元
- 【天天速看料】2023年高考数学难不难?考生:比去年简单 轻松140分
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
今亮点!关于Java中多线程
基本概念
什么是进程-->是操作系统资源分配和调度的最小(基本)单位(操作系统分配给当前进程一个内存区域供其使用)
什么是线程-->是程序运行的基本单位(等待操作系统分配时间片 让CPU执行该内存区域中的代码)
(资料图)
进程和线程的关系-->一个进程可以存在多个线程 线程是由进程创建的(寄生在进程中) 线程是进程中一个负责程序执行的控制单元
什么是单线程-->只处理一个任务
什么是多线程-->宏观上同时处理多个任务即并发执行也就是说允许单个进程运行多个线程来完成不同的任务(站在CPU角度微观上其实1个CPU每时刻只能执行一个任务 但是宏观上看这CPU一会执行这个一会执行那个)
谈谈线程的几种状态-->开始(new)-->就绪(runnable)-->运行(runnint)-->阻塞(blocked)-->销毁(dead)
多线程有什么好处-->异步处理任务 将IO任务异步(阻塞IO线程让其他线程进入开始状态)操作提高CPU利用率
多线程有什么缺点-->线程也是程序当线程越来越多会导致占用内存大 多线程需要协同管理需要跟棕栈 线程之间对共享资源的访问必须解决竟用的问题 线程太多会导致程序过于复杂难以排除bug
一个java程序至少有几个线程-->当我们启动java程序的时候会立即执行main()方法这个线程被称为程序的主线程和垃圾回收线程
聊聊Java中的多线程
java.util.concurrent
简称JUC
实现多线程的方式-->调用Thread.start()方法
- 重写Runnable接口中的run()方法 实例化Runnable接口实现类并作为参数传递给Thread
- 继承Thread类并重写run()方法 实例化继承类
- 重写Callable接口中的call()方法产生的回调结果参数传递给FutureTask()构造函数然后将实例对象作为参数传递给Thread构造函数
怎么开启一个线程-->不管通过哪种方式实例化Thread的时候 线程就到开始状态了
什么是初始态-->仅仅在语言层面创建一个线程实例
怎么到就绪态-->调用Thread.start()方法 线程进入就绪态等待操作系统分配时间片
怎么到运行态-->操作系统分配时间片给当前线程
怎么从运行态回到就绪态-->时间片用完还没有完成任务那么就又回到就绪态
怎么从运行态到阻塞态-->进行耗时的IO操作时 操作系统拿到其时间片将其分配给其他线程 或者Thread.sleep()方式强制进入睡眠状态
怎么从阻塞态回到就绪态-->在阻塞态的线程完成其操作回到就绪队列中等待操作系统分配时间片
怎么从运行态到销毁-->线程中的代码执行完毕然后jvm收回线程占用的资源!
什么是主线程-->Main线程 垃圾回收线程
怎么让线程停止-->Thread类提供stop()方法用于停止一个已启动的线程但本质是不安全的
如何安全停止一个正在运行的线程-->线程对象在执行完run()方法所有代码执行完成后线程会自然消亡因此需要在运行过程提前停止线程 可以通过更改变量值的方法run()方法提前结束
创建线程的三种方式
public class MyThread extends Thread{ @Override public void run(){ System.out.println("操作系统分配时间片给我啦!"); }}
public class MyRunnable implements Runnable{ @Override public void run() { System.out.println("操作系统分配时间片给我啦!"); }}
public class MyCallable implements Callable { @Override public String call() throws Exception { return "操作系统分配时间片给我!!";//产生一个返回结果 }}
测试类
public class TestCreate { @Test public void test1() throws Exception{ MyRunnable myRunnable = new MyRunnable(); //创建线程 Thread t1=new Thread(myRunnable,"实现runnable接口的方式"); MyThread t2=new MyThread("继承thread的方式"); MyCallable myCallable = new MyCallable(); FutureTask futureTask=new FutureTask<>(myCallable); Thread t3 = new Thread(futureTask);//futureTask负责调用call()函数 t3.setName("我是实现Callable的方式"); t1.start(); t2.start(); t3.start(); String s = futureTask.get();//通过get方式拿到返回的结果 System.out.println("这里是返回的结果-->"+s); }}
线程中断
打断正在执行的线程
- Thread实例.stop()方式
stop方式会杀死一个进程 如果此时该线程锁住了一些共享资源 那么它被杀死以后就再也没有机会释放锁 其他线程将永远无法获取锁
- System.exit(int)方式停止线程
目的是停止一个线程 但这样会让整个程序都停止!
打断被堵塞的线程
- 两阶段终止模式
public class MonitorThread{ //维护一个Thread实例 来监控是否被打断 private Thread monitor; public void start(){ monitor=new Thread(()->{ while (true){ //isInterrupted不会清除打断标记 if (monitor.isInterrupted()){ System.out.println("料理后事..."); break; } try { //每次5秒1记录 Thread.sleep(5); System.out.println("监控记录"); }catch (InterruptedException e){ e.printStackTrace(); System.out.println(monitor.isInterrupted());//false monitor.interrupt();//重置打断变量 } } }); monitor.start(); } //停止监控线程 public void stop(){ monitor.interrupt(); } public static void main(String[] args) throws InterruptedException { MonitorThread monitorThread = new MonitorThread(); monitorThread.start(); Thread.sleep(100); monitorThread.stop(); }}
守护线程
主线程执行完毕-->守护线程无论是否执行完毕就dead
守护线程-->垃圾回收器 tomcat中的分发器
public static void main(String[] args) throws InterruptedException { Thread t1=new Thread(()->{ while (true) System.out.println("我是daemon线程..."); }); //设置为守护线程 t1.setDaemon(true); t1.start();//线程不可以多次执行start()方法 Thread.sleep(10); System.out.println("主线程准备结束--守护线程也被挂掉了");}
烧水喝茶
graph LR;a(洗水壶1分钟)-->b(煮水15分钟)-->c(泡茶叶)d(洗茶壶 拿茶叶 洗茶叶 4分钟)-->cpublic static void main(String[] args) { //两个线程模拟烧水喝茶的过程 Thread t1=new Thread(()->{ try { System.out.println("水壶清洗..."); Thread.sleep(1000); System.out.println("烧水..."); Thread.sleep(15000); } catch (InterruptedException e) { throw new RuntimeException(e); } }); Thread t2=new Thread(()->{ try { System.out.println("洗茶壶"); Thread.sleep(1000); System.out.println("拿茶叶"); Thread.sleep(2000); System.out.println("洗茶叶"); Thread.sleep(1000); t1.join(); }catch (InterruptedException e){ e.printStackTrace(); } System.out.println("泡茶ok"); }); t1.start();//小王 t2.start();//小张}
共享带来的问题
一个程序运行多个线程本身是没有问题的 但问题出在多个线程访问共同的资源
//全局变量2个线程访问public class Test3 { static int global=0; public static void main(String[] args) { Thread t1=new Thread(()->{ for (int i=0;i<2500;i++){ global++; } }); Thread t2=new Thread(()->{ for (int i=0;i<2500;i++){ global--; } }); t1.start(); t2.start(); try { t1.join(); t2.join(); } catch (InterruptedException e) { throw new RuntimeException(e); } //为什么执行2500次g++和2500次g--结果并不一定是0 字节码角度分析 // 自增自减运算符并非一条指令(非原子操作) System.out.println(global); }}
在一个线程中
临界区
关键词:
今亮点!关于Java中多线程
受贿1992615.31元!陈克祥一审获刑三年半! 热讯
当前视点!萍乡一值班保安多次盗窃工地财物 获刑并处罚金
全球信息:重庆沙坪坝:检察建议督促行政机关及时治理危险文具
世界聚焦:物质是什么意思标准答案(物质是什么)
临汾市2023年妇幼保健机构院长例会顺利召开
丰原药业:公司没有顺铂产品
快报:网约车复苏趋势已来!T3出行发布年轻化战略,超级出行APP是亮点
名创优品早盘涨超6% 机构指公司海外市场业务持续增长-环球今头条
6月7日LME铅库存较前一日持平|聚焦
机构:高学历房产经纪人占比提升 40岁以下经纪人占比八成 观焦点
每日快看:【收评】白糖日内上涨1.48% 机构称白糖短期内外出现劈叉
天天简讯:小米14系列两大新升级曝光!消灭多年遗憾
全球快消息!OLED+彩色水墨屏二合一:联想新ThinkBook Plus Twist来了
这几个电脑硬件可以买二手:分分钟省1000元|天天热门
每日热讯!4K 160Hz+双HDMI 2.1白菜价 27寸mini LED显示器2929元
【天天速看料】2023年高考数学难不难?考生:比去年简单 轻松140分
环球快消息!虹口这所学校组建了“父亲联盟”
敦煌种业(600354)6月7日主力资金净卖出656.38万元 信息
每日热讯!天奥电子:公司晶振相关产品主要应用于国防装备、航空航天、卫星导航及通信等领域
全球实时:东莞债务逾期停息挂账后果是什么?没逾期可以停息挂账吗?
每日焦点!今日幸运数字_dnf幸运数字猜猜猜第一天数字是多少
河北省首单村集体企业综合保险落地张家口
达仁堂(600329)6月7日主力资金净买入1272.65万元
全球焦点!Webpack 插件实现 CSS 样式尺寸单位转换
NetCore服务器对接小程序直传阿里云OSS|即时看
高考首日,考生乘坐“爱心送考车”奔赴考场
订购纸箱公司_订购纸箱
中国5月外汇储备31765.1亿美元 连续第7个月增加黄金储备
债市日报:6月7日
买字笔顺怎么读_买字笔顺
一到高考就下雨 究竟是不是错觉?专家:亚洲季风导致
AI考生迎战高考语文!于丹评ChatGPT写的高考作文:毫无灵性和才情 世界快资讯
高考离谱榜上新:家长送孩子高考 竟把小女儿忘考场
《暗黑破坏神4》梅根福克斯宣传片:祝玩家在游戏中“死得其所”|当前简讯
世界热推荐:一箭26星新纪录!中科宇航力箭一号大型固体火箭发射圆满成功
15英寸MacBook Air先别买!首发价格太高 降价空间不小|环球今热点
商品期货收盘多数下跌,甲醇跌3%,纸浆、尿素、纯碱跌超2%_世界动态
环球今头条!宝宝脸上红疙瘩识别图片_宝宝脸上红疙瘩识别图
世界看热讯:链家广州二手房数据 2023
数据驱动的教育创新:大数据在学校的应用_当前资讯
CentOS7 本地光盘镜像rpm包-今日热议
快资讯:DDL语句
slack 团队及个人工作学习的好帮手
天天观天下!土耳其里拉遭遇两年来最大单日抛售
【世界独家】全国职工数字化应用技术技能大赛决赛在福州举行
宿便是什么意思_宿便的解释|全球动态
氢气还原氧化铁的化学方程式是什么_氢气还原氧化铁的化学方程式|快消息
焦点热讯:高考今日开跑,贝克汉姆拍视频用中文喊:“高考加油”
闽清高考生速看!遗忘身份证不要慌
环球实时:高考防作弊磁弹枪亮相:可狙击黑飞无人机
“奔驰小G”正式上市 搭载2.0T四缸发动机 售价142.48万起 天天微头条
为Vision Pro做准备?苹果被曝收购AR初创公司Mira 世界球精选
环球速看:尴尬到家!RX 7600 eBay一周销量为零、RTX 4060 Ti只卖出一块
真心建议:拉完便便 一定要回头看一眼!
美原油交易策略:多空消息交替影响油价,关注EIA数据
吉林高龄补贴2023发放标准:2023吉林省各地区高龄补贴标准是多少?|看点
*ST金山(600396)6月7日主力资金净买入339.20万元
一天杀两白马!长春高新大跌超9%
阿里云 Serverless 容器服务全面升级:新增组件全托管、AI 镜像秒级拉取能力
微信dat文件转图片(jpg,png,gif) 当前快报
看点:港股午评:恒指涨0.97%报19285.1点,科网股普遍收涨
天天新消息丨2023吉网高考观察①丨逐光的你们,就是自己的光!
环球观点:日债市场流动性改善 多数期限品种收益率下行
当前消息!收评:创指跌1.61%续创年内新低 AI概念股走强、新能源赛道股回落
你过桥他爬桥、买个馒头排大队……网红打卡怎样才能不招人烦?
盛和资源(600392)6月7日主力资金净卖出1458.87万元_全球热文
一杯两用:佳适高颜值大容量大肚杯1300ML 19.9元
即时焦点:茅台卖咖啡可加料:12元1.8ml茅台酒 喝完不能开车
网友吐槽苹果Vision Pro头戴卖2.5万太贵 库克回应:物超所值
微软发掘AI“新用途”:搜索Chrome时BingChat打出推广-天天新要闻
一到高考就下雨 究竟是不是错觉?专家:亚洲季风导致 热门
固体饮料能预防疾病?江苏江阴消保委:属虚假宣传|世界头条
长沙会战的意义(长沙会战)_要闻
顶象发布《车企App安全研究白皮书》,剖析品牌汽车App的两大类风险
每日观察!GaussDB(DWS)查询过滤器原理与应用
全球热点!SQL Server 补丁理解及安装 内附完整版下载地址及sp1/2/3补丁
领导看了给你加薪!python +ddt+excel 一招鲜,接口自动化测试轻松搞定,测试报告惊艳四座!-全球独家
世界微速讯:平顶山市:连锁食品经营企业实现“一套材料、一次核查”
学哥学姐暖心寄语:拼搏吧高考少年
全球速读:西部证券:给予巨子生物买进的初始评级,目标价47.24港元。
【环球新视野】盘点高考各地第一个走出考场的考生:将平静面对接下来的考试
全球即时:无人车撞死小狗:系统已识别、还有安全员、就是不刹车!
第27次冲刺 高考钉子户梁实谈语文考试:不是很失败 应该能拿105分
当前热文:比亚迪高考作文押题成功!公关李云飞评论区被刷屏
俞敏洪建议高考完别对答案:正常饮食和睡眠
李凯丽是谁呀_李凯丽 中国女艺人
股权溢价转让怎么纳税
备战亚运!多支国家队来浙江集训
MySQL逻辑架构及执行过程
SQLYog使用教程
jenkins~权限控制 世界热推荐
一份配置轻松搞定表单渲染,配置式表单渲染器在袋鼠云的实现思路与实践
[Docker/K8S]Docker与K8S的区别
券商观点|定制家居行业专题研究:整家与整装战略落地,需求有望逐步改善
全球热讯:超图软件:公司与Unity有紧密的技术合作
聚焦:重大突破!华为发布首款全栈自主数据库GaussDB:真正属于中国人自己的数据库来了
1小时收费6.5元!共享单车悄然涨价超地铁:你还用吗?
宝马轿车被追尾 贬值损失能赔吗
环球视点!kp什么意思网络用语(网络上kp是什么意思)