JUC并发编程与源码分析笔记02-线程基础知识复习
admin
2024-02-17 05:28:07
0

先拜拜大神

JUC包的作者是:Doug Lea。

为什么学习并用好多线程极其重要

硬件方面

摩尔定律失效。

软件方面

面试更有底气,充分利用多核处理器的优势,提高程序性能,提高程序吞吐量,完成异步+回调等生产需求。

弊端及问题

线程安全问题、线程锁问题、线程性能问题。

从start一个线程说起

public class Test {public static void main(String[] args) {new Thread(() -> {System.out.println("Test.main");}, "myThread").start();}
}

Java线程理解以及openjdk中的实现

Java最底层的native方法,是由C++实现的,可以到openjdk查看,下载地址在这里,我们需要关注的目录是:openjdk\src\hotspot\share\runtime。

更加底层的C++源码阅读

Java线程通过start方法启动执行,主要内容在native的start0()
里,OpenJDK中Thread.java对应的就是Thread.c,start0就是JVM_StartThread。

Java多线程相关概念

1把锁

synchronized。

2个并

并发(concurrent)

某一时刻,在同一实体上的多个事件,在一台处理器上同时处理多个任务。

并行(parallel)

某一时刻,在不同实体上的多个事件,在不同处理器上同时处理多个任务。

并发vs并行

3个程

进程

简单的说,在系统中运行的一个应用程序就是一个进程,每一个进程都有它自己的内存空间和系统资源。

线程

也被称为轻量级进程,在同一个进程内会有1个或多个线程,是大多数操作系统进行时序调度的基本单元。

管程

俗称Monitor(监视器),是我们平时所说的锁,比如synchronized锁。
Monitor其实是一种同步机制,它的义务是保证同一时间只有一个线程可以访问被保护的数据和代码,JVM中同步是基于进入和退出监视器对象来实现的,每个对象实例都有一个Monitor对象。Monitor对象和Java对象一同创建并销毁,底层由C++实现。

用户线程和守护线程

Java线程分为用户线程和守护线程

默认情况下,指的都是用户线程。

用户线程(User Thread)

是系统的工作线程,它会完成这个程序需要完成的业务操作。

守护线程(Daemon Thread)

是一种特殊的线程,是为其它线程服务的,在后台默默地完成一些系统性的服务,比如:垃圾回收线程。
守护线程作为一个服务线程,没有服务对象就没有必要继续运行了,如果用户线程全部结束了,意味着程序需要完成的业务操作已经结束了,系统可以退出了,所以假如当系统只剩下守护线程的时候,Java虚拟机会自动退出。

线程的daemon属性

通过java.lang.Thread#isDaemon方法判断是否是守护线程。

code展示

public class Test {public static void main(String[] args) {Thread myThread = new Thread(() -> {System.out.println(Thread.currentThread().getName() + ":" + (Thread.currentThread().isDaemon() ? "守护线程" : "用户线程"));while(true);}, "myThread");myThread.setDaemon(true);myThread.start();try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(Thread.currentThread().getName() + "线程结束");}
}

留意myThread.setDaemon(true);语句,当myThread是用户线程的时候,main线程结束,但是myThread还在运行,当myThread是守护线程的时候,main线程结束,此时已经没有其他用户线程了,所以myThread也会结束。

小总结

如果用户线程全部结束意味着程序需要完成的业务操作已经结束了,守护线程随着JVM一同结束工作,setDaemon(true)方法必须在start()之前设置,否则报IllegalThreadStateException异常。

相关内容

热门资讯

直线涨停!多股午后异动! 今日,A股强势上攻。科创综指大涨3.37%,再创历史新高;上证指数突破4200点,创近11年新高;深...
什么情况?白银突然暴涨7%逼近... 贵金属市场本周开局表现强劲。尽管围绕美伊和平谈判的最新进展再度受挫,白银价格仍升至两个月高位。 现货...
芯原股份20cm涨停,寒武纪涨... 半导体板块全线走强。芯原股份20cm涨停,寒武纪涨超17%,科创人工智能ETF易方达、科创人工智能E...
现金、动销与未来:五粮液的转身... 2026年4月30日,年报最后截止日,五粮液一纸会计差错更正公告,将2025前三季度营收从609.4...
动荡中的“压舱石”:顶级豪宅为... 文/乐居财经 严明会 “我们梳理了九大‘不确定因素’场景。虽然它们不在基准预测之列,但任何一个若兑现...
AI“三剑客”压阵!小摩:下半... 自2025年以来,新兴市场股市相对发达市场的超额收益已达25%。 这可能仅仅是开始。摩根大通认为,本...
【IPO追踪】胜宏科技(024... 5月11日,AI PCB龙头胜宏科技(02476.HK)大涨13.67%创上市以来新高,市值一举突破...
一周融资汇总:热度不减,11家... 上周(5.5-5.11)机器人行业持续迎来资本热潮。《智能新观察》基于公开信息的不完全统计,梳理出5...
原创 股... 股息到账的喜悦还未褪去,手机突然弹出一条银行扣款短信——“红利差异税扣缴xxx元”。不少股民都经历过...
注意!“三类情形”不合规发票不... “三类情形”不合规发票不能报销,这些风险点要避开! 不符合规定的发票不可以作为报销凭证,任何单位和个...
4月份CPI同比上涨1.2% 5月11日,河北石家庄,顾客在一超市内购买蔬菜。5月11日,国家统计局发布数据显示,4月份,受国际原...
轻舟智航CEO于骞:有智驾的车... 【CNMO科技消息】近日,轻舟智航联合创始人、董事长兼CEO于骞在与凤凰网财经《发现新势力》对话时,...
“双十”增长开局!宁波银行20... 近日,随着宁波银行2026年一季报及2025年年报的相继披露,这家城商行“领头羊”展现出强劲的发展韧...
原创 火... 斑马消费 范建 火锅主业增长触顶,影响资本市场信心。海底捞将破局筹码,押在了多品牌孵化之上。 202...
原创 夯... 作者|娅沁 声明|题图来源于网络。惊蛰研究所原创文章,如需转载请留言申请开白。 近两年,年轻人中开始...
美伊谈判再挫金价,市场转向交易... 据央视新闻,当地时间5月10日,美国总统特朗普在社交媒体表示,伊朗方面的回应“完全不可接受”。据新华...
宗馥莉罢免销售负责人 图片拍摄:界面新闻 赵晓娟 界面新闻记者 |赵晓娟 界面新闻编辑 |牙韩翔 娃哈哈和宏胜饮料...
直击茅台业绩说明会!回应营收确... 【导读】贵州茅台5月11日召开业绩说明会 中国基金报记者 郑俊婷 5月11日下午,贵州茅台在线上召开...
大跌41.8% 智能音箱市场遇... 快科技5月11日消息,最新行业数据显示,2026年第一季度国内智能音箱线上市场行情很冷,整体销量直接...
贵州茅台业绩会直面营利波动,王... 茅台直面了外界关注的诸多核心问题。 图片来源:贵州茅台官微 5月11日,贵州茅台酒股份有限公司(6...