You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java多线程代码输出选择题:验证代码正确性及正确选项

代码存在的问题

  • 编译错误:Java语法规定一个源文件最多只能有一个public修饰的类,且类名必须和源文件名一致。当前代码同时声明了public class MyThread和public class myTest,直接编译就会报错,无法运行。
  • MyThread错误重写了Thread的start()方法:原生Thread.start()的作用是向操作系统申请线程资源,启动线程后自动回调run()方法。但这里重写的start()没有调用super.start(),完全覆盖了原有逻辑,所以调用myThread.start()只会执行打印逻辑,不会启动新线程,也不会触发run()执行。
  • 给出的main方法逻辑不全:仅调用了myThread.start(),创建的包装了myRunnable的thread对象从来没有调用start()方法,所以MyRunnable里的代码根本不会执行,实际运行只会输出一行MyThread: start(),和四个备选项都不匹配。
  • 额外说明:MyRunnable里自定义的start()方法没有任何作用,Runnable接口仅要求实现run()方法,线程启动时只会回调run(),不会调用这个自定义的start()。

正确答案

结合四个选项反推,题目明显是漏写了main方法最后一行的thread.start()调用。补上这行代码后:

  1. 首先执行myThread.start(),因为重写了start()方法,输出MyThread: start()
  2. 接着执行thread.start(),走原生Thread的启动逻辑,启动新线程后回调传入的myRunnable的run()方法,输出MyRunnable: run()
    最终输出和选项4完全匹配,所以正确答案是4。

内容的提问来源于stack exchange,提问作者user16933456

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 01:06:03