当前位置: 首页 > news >正文

Java Core 50 个顶级求职面试问题与答案。第二部分

多线程

24. 如何在 Java 中创建新线程?

无论如何,线程会被创建,使用线程类。但有多种方法可以做到这一点......

  1. 继承java.lang.线程.
  2. 实现java.lang.Runnable接口——线索类的构造子会接受一个可运行对象。

让我们来谈谈他们每一个。

继承Thread类

在这种情况下,我们让类继承java.lang.线程.它有一个run()这正是我们所需要的。新线程的所有生命力和逻辑都将集中在这个方法中。这有点像主要角色新线索的方法。 之后,剩下的就是创建我们类中的对象并调用开始()方法。这样会创建一个新线程并开始执行其逻辑。让我们来看看:主机输出大致如下:

/** * An example of how to create threads by inheriting the {@link Thread} class. */ class ThreadInheritance extends Thread { @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { ThreadInheritance threadInheritance1 = new ThreadInheritance(); ThreadInheritance threadInheritance2 = new ThreadInheritance(); ThreadInheritance threadInheritance3 = new ThreadInheritance(); threadInheritance1.start(); threadInheritance2.start(); threadInheritance3.start(); } }
线索1 线程-0 线索-2

也就是说,即使在这里,线程的执行也不是按顺序执行,而是按照JVM的判断执行:)

实现可运行接口

如果你反对继承和/或已经继承了其他职业,你可以使用java.lang.Runnable接口。 在这里,我们让类通过实现run()方法,就像上面的例子一样。剩下的就是创造线索物品。看起来代码行数越多越糟。但我们知道遗传有多么有害,最好尽量避免;) 看看:结果如下:

/** * An example of how to create threads from the {@link Runnable} interface. * It's easier than easy — we implement this interface and then pass an instance of our object * to the constructor. */ class ThreadInheritance implements Runnable { @Override public void run() { System.out.println(Thread.currentThread().getName()); } public static void main(String[] args) { ThreadInheritance runnable1 = new ThreadInheritance(); ThreadInheritance runnable2 = new ThreadInheritance(); ThreadInheritance runnable3 = new ThreadInheritance(); Thread threadRunnable1 = new Thread(runnable1); Thread threadRunnable2 = new Thread(runnable2); Thread threadRunnable3 = new Thread(runnable3); threadRunnable1.start(); threadRunnable2.start(); threadRunnable3.start(); } }
线程-0 线索1 线索-2

25. 进程和线程有什么区别?

进程和线程在以下方面有所不同:

  1. 运行中的程序称为进程,但线程是进程的一部分。
  2. 进程是独立的,但线程是进程的一部分。
  3. 进程在内存中有不同的地址空间,但线程共享一个共同的地址空间。
  4. 线程间的上下文切换比进程间切换更快。
  5. 进程间通信比线程间通信更慢且成本更高。
  6. 父进程的任何更改不会影响子进程,但父进程的变化可能影响子进程。

26. 多线程有哪些好处?

  1. 多线程允许应用程序/程序始终响应输入,即使它已经在运行一些后台任务;
  2. 多线程使得任务完成速度更快,因为线程独立运行;
  3. 多线程能更好地利用缓存内存,因为线程可以访问共享的内存资源;
  4. 多线程减少了所需的服务器数量,因为一台服务器可以同时运行多个线程。

27. 线程生命周期中的状态是什么?

http://www.jsqmd.com/news/885363/

相关文章:

  • 百考通AI:文献综述的智能破局者,彻底解决各环节的创作难题
  • OpenSSH scp命令注入漏洞CVE-2020-15778深度解析与三层防御
  • 幼儿园老师考融合教育影子教师证怎么报名更正规 - 当下教育培训干货
  • 2026年家居定制市场解析:全屋定制性价比的多维度观察 - 产品测评官
  • 2026年FESTO费斯托供应商怎么选?避开这几点,认准这几家就够了! - 品牌推荐大师1
  • 单机自动化系统工程:从单台设备升级到稳定自动运行的完整解析
  • 从零到专业:Avidemux视频编辑器的效率革命之路
  • Unity在车规级HMI开发中的确定性渲染与工程实践
  • 量子自编码器与Qudit VQC:混合量子-经典机器学习处理大规模时序数据
  • Firefox 与 Adafruit 合作:无需安装程序,在浏览器中轻松实现硬件编程!
  • Unity DllNotFoundException 根因解析与跨平台插件加载四关卡
  • 全面讲解 OpenClaw 本地部署相关知识点
  • 企业内网应用通过 Taotoken 安全调用大模型 API 的实践方案
  • RFAN框架:自适应临床试验如何从统计确认迈向患者获益最大化
  • 别再踩坑了!Unity AR项目发布安卓时,这几个Player Settings设置必须改(以Vuforia为例)
  • 十分钟彻底看懂AI架构 - 智慧园区
  • Mac iOS自动化环境搭建:Xcode、Appium与真机调试全链路指南
  • AI原生求职时代来了|2026校招报告:95%应届生用AI求职,企业面临三大挑战 - 嘻哩哩女王在行动
  • Godot做2D像素风Steam游戏,真的比Cocos香吗?聊聊我的踩坑与选型心得
  • 2026破局信息差!淮北黄金回收到底哪家靠谱?答案更新 - 天天生活分享日志
  • 2026年4月靠谱的马氏体不锈钢板生产厂家推荐,不锈铁板材/430不锈钢板材/不锈铁中厚板,马氏体不锈钢板生产厂家哪家好 - 品牌推荐师
  • ComfyUI-SUPIR图像超分辨率实战:3大应用场景让你轻松修复模糊照片
  • Nintendo Switch数据转储完全指南:解密nxdumptool的高级技术实现
  • Unity安卓打包三件套安装顺序与路径避坑指南
  • Godot+本地LLM打造轻量级智能桌宠:桌面AI的在场感实践
  • GitHub狂揽23万Stars的OpenClaw:Windows一键部署,30分钟搭建你的私人AI助手
  • UE5材质实战:用材质参数集和Actor蓝图,5分钟搞定可拖拽的球形遮罩
  • 可解释机器学习破解星系演化之谜:随机森林与EBM揭示重子保留关键
  • 技术人的“数字排毒”:周末不看屏幕的尝试与结果
  • 上市公司足浴文化指数数据