Redian新闻
>
每个 Java 开发人员都应该知道的关于线程、Runnable和线程池的知识

每个 Java 开发人员都应该知道的关于线程、Runnable和线程池的知识

科技

新钛云服已为您服务1472



多线程是Java 中最复杂和最强大的部分

多线程章节是 Java 中最难理解和使用的章节。不幸的是,没有多少资源可以让您获得所有答案。同时,并发知识至关重要。在本文中,我解释了每个 Java 开发人员都必须了解的多线程的核心方面。在这一部分中,我们从 Thread 和 Runnable 主题开始。

为什么并发知识如此重要?

如果没有良好的多线程知识,您将无法获得高级 Java 工作


几乎可以肯定,多线程知识是 Java 高级职位面试的主题。如果没有对多线程的清晰理解,无论是否有实践经验,你很可能会失败。


几乎每个生产应用程序都使用多线程范式


在实际项目的实践中,您将使用应用程序服务器或其替代品。它们都基于线程池等多线程解决方案。任何在其之上的适当实现都需要并发一致性。 

线程和可运行定义

多线程基于 Thread 和 Runnable。Thread 是一个启动新的独立活动并执行 Runnable 提供的指令的类。


线程是一个附加到操作系统的实体,所以这就是它是一个重类的原因。同时 Runnable 只是一组指令——所以这就是为什么它是轻量级的。

如何执行新线程

线程可以通过使用Run()方法在当前运行的线程内部执行指令。为了在新活动中运行指令,Thread 提供了Start()方法。

如何重用线程

线程可以在其中执行许多可运行的任务。这是一篇更详细的文章。在这里,您可以看到一个非常简短的示例,其中许多可运行对象(任务)在一个线程中运行:

如何停止线程

你不能只是stop()suspend()线程。这些方法已弃用。您必须注意使用isAlive()或的中断设计isInterrupted()

 

线程守护进程


线程可以是守护进程。即使最后一部分不会执行,守护线程也会立即中断。所以这样的线程可以附加到资源上。否则,它们可能是资源或/和内存泄漏的原因。


如何使用线程池


只要 Thread 实例很重,使用 ThreadPool 类重用相同的 Thread 是有意义的。您可以根据线程使用不同的 ThreadPool 实现。 


· 固定线程池

FixedThreadPool 是一个具有预定义线程数的简单池。期间线程数不会改变。使用它是有意义的:


· 缓存线程池

与Fixed Thread Pool相反,这个可以在添加更多任务时动态增加线程数。每个新创建的线程在使用时都将处于活动状态,否则将在空闲 60 秒后将其删除。


如何定义线程池中的线程数


为了为您的应用程序使用最好的线程池,您需要了解以下内容:
  • 如果您的线程执行大量计算,例如视频渲染、加密等,那么它会吃掉运行该线程的进程。
  • 如果您的线程运行与 CPU 活动(如网络调用、内存调用等)无关,则它不会消耗运行其线程的 CPU。

依靠这些知识,您可能会得出以下结论:
  • 拥有高 CPU 消耗任务的任务分配的线程数不会超过 CPU 内核数。

  • 对于 CPU 消耗较低的任务,您可以拥有比 CPU 内核更多的线程(但比例取决于具体情况)。


结论:

本文仅重点介绍有关线程、可运行和线程池概念的主要内容,但并未完全涵盖。仍有许多方面可能发挥重要作用。我希望你喜欢我使用的信息图表。如果您认为我遗漏了与此主题相关的重要内容,请留下您的反馈。谢谢阅读!


*原文链接https://dzone.com/articles/what-every-java-dev-should-know-thread-runnable-thread-pool
*本文部分图片源于网络,如有侵权请联系删除


了解新钛云服

新钛云服荣膺第四届FMCG零售消费品行业CIO年会「年度数字化服务最值得信赖品牌奖」

新钛云服三周岁,公司月营收超600万元,定下百年新钛的发展目标

当IPFS遇见云服务|新钛云服与冰河分布式实验室达成战略协议

新钛云服正式获批工信部ISP/IDC(含互联网资源协作)牌照

深耕专业,矗立鳌头,新钛云服获千万Pre-A轮融资

新钛云服,打造最专业的Cloud MSP+,做企业业务和云之间的桥梁

新钛云服一周年,完成两轮融资,服务五十多家客户

上海某仓储物流电子商务公司混合云解决方案


往期技术干货

Kubernetes扩容到7,500节点的历程

低代码开发,全民开发,淘汰职业程序员!

国内主流公有云VPC使用对比及总结

万字长文:云架构设计原则|附PDF下载

刚刚,OpenStack 第 19 个版本来了,附28项特性详细解读!

Ceph OSD故障排除|万字经验总结

七个用于Docker和Kubernetes防护的安全工具

运维人的终身成长,从清单管理开始|万字长文!

OpenStack与ZStack深度对比:架构、部署、计算存储与网络、运维监控等

什么是云原生?

IT混合云战略:是什么、为什么,如何构建?




点👇分享

戳👇在看

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
有些事,妈妈不说,但我们都应该知道面向 Java 开发人员的 JVM 参数指南 | Linux 中国梁春教授:降脂靶标除了传统的LDL-C,你还应该知道ApoB | OCC 2022Young Chinese Shunned Marriage. Now, They Want Singles’ Rights.从零开始申请美高,2023FALL你该知道哪些通关秘诀? | FS系列讲座[模型] LEGO No.76240 蝙蝠车复刻版 BATMOBILE TUMBLER关于AVOD, 你需要知道的事你应该知道的死亡教育:与光同尘 我心安宁(四)Run with Becca Pizzi at the AAPI 5K Run 'n' Walk你应该知道的死亡教育:与光同尘 我心安宁(二)推荐 | 5分钟一集的动画片,竟然就把“最难的知识”启蒙了你应该知道的死亡教育:与光同尘 我心安宁(一)在新的出版模式下,每篇论文都应该对应一个网站此「公粮」 非彼「公粮」,这段历史,城里人都应该了解一下。44岁怀孕女子“哮喘症状”竟是肺癌第4期!澳人的第一大杀手,关于肺癌你必须要知道的事!OpenTable最新榜单!多伦多这15家数千人点赞Brunch,你必须知道!每个女孩都应该帮「她」冲上热搜关于苹果发布会你想要知道的疫情下,每个人都应该认真做自媒体简评《沙丘》《不要抬头》《犬之力》播客丨关于印度电影,你想知道的都在这了夜泊夏天来之前,一定要知道的新知识!市况剧烈波动,元宇宙“三剑客”Meta、Roblox、Unity遭遇烦恼如何打造一份高品质的软件开发人员简历?用 Marble 一站式管理和查看自己的各类保险【注册奖励 $7 + 每个保险再奖励 $5】俄乌战争——铁链子模式的国际版本Event | China-Israel 30 Anniversary Friendship Relay Run友谊接力跑别让择校毁了孩子一生!这位一线校长的忠告,所有父母都应该看看!关于学习机,你想知道的都在这里了!把对岸战狼拖垮,让两岸平等对话经历逼婚、家暴、白发人送黑发人,她将60万积蓄捐光,在100岁离世,活成了传奇……千万别拦着,让地球就此毁灭得了Sumner Tunnel即将开工,这些是你需要知道的npj Flexible Electronics: 激光诱导石墨烯柔性可拉伸电子器件
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。