首页 > 试题广场 >

下面程序的运行结果是?

[单选题]
下面程序的运行结果:()
public static void main(String args[]) {
		Thread t=new Thread(){
		public void  run(){
			dianping();
			
		}
	};
	t.start();
	System.out.print("dazhong");
	}
	static void dianping(){
		System.out.print("dianping");
}
  • dazhongdianping
  • dianpingdazhong
  • a和b都有可能
  • dianping循环输出,dazhong夹杂在中间
推荐
B
在上面main()方法中,并没有创建一个新的线程,只是简单地方法调用而已,如果想要创建线程,需要t.start();创建线程,等待cpu时间片,而run()方法只是简单地方法调用,所以先执行run(),在输出dazhong
编辑于 2016-01-14 16:35:52 回复(24)
如果调用run() 选b
如果调用start() 选c
因为调用start后并不保证线程启动的顺序
发表于 2016-03-08 16:02:17 回复(14)
这题改过的,我看以前的评论都是说原题是调用run方法,改了问题不改答案,又是哪个出题人睡着了?
发表于 2022-04-19 22:44:34 回复(16)
  • 这里是start,不是run
    start
  • start会开启新线程,这样的话,A和B都有可能,应该选C
    diyici
发表于 2022-04-19 21:17:49 回复(7)
收获:静态函数不会先加载 静态块会先加载
发表于 2019-04-25 22:37:09 回复(2)
这里仅仅是调用了run()方法,程序就只能顺序执行;开启线程是调用start()方法,这样才能并发执行。

发表于 2016-01-31 21:30:25 回复(0)
这题傻子吧,改了题不改答案是吧?
发表于 2022-05-10 17:17:31 回复(0)
启动线程使用.start 方法,直接.run是简单的方法调用。
发表于 2015-11-05 23:10:38 回复(0)
nn滴,改题目不改答案
发表于 2022-08-08 19:01:37 回复(0)
选的c,看了大家的评论又在网上搜索了一下,主要还是start和run方法的区别,start方法来启动一个线程,此时线程处于就绪状态,并没有运行,等到得到cpu的时间片,就执行run方法,这时候才是线程的执行;而run方法就只是类的一个普通方法,并没有创建新线程,程序中仍然只有主线程这一个线程,程序的执行路径还是只有一条,还是要顺序执行,所以会等待run方法执行完毕后再执行下面的语句,所以选b
发表于 2021-01-14 11:27:15 回复(1)
这个题目错了,我做的时候代码是t.start() ,应该是选C, 如果是t.run() 答案选B。
题目是t.start() 答案确给的是B!错了
发表于 2022-04-23 22:21:31 回复(0)
创建了线程对象,但是并没有开启线程。因此就是普通的对象的调用方法。dianping()是静态函数,随着类的加载而加载到内存
编辑于 2015-11-29 14:34:35 回复(1)
可是题目中明明是start,是我眼花了吗
发表于 2022-08-14 14:43:42 回复(0)
很明显,这道题的题目改了,也很明显,改了题目还不改答案 ,解析都没改。原题应该是t.run(),现在是t.start()。t.start()的方法是启动了线程的,所以现在是多线程,答案应该选C。
发表于 2022-12-13 10:50:51 回复(0)
坑啊0.0,用的是run()而不是start(),并没有开启新的线程
发表于 2017-02-26 11:25:25 回复(0)
这个答案是c 题改过 我刚在电脑上运行调试了
发表于 2022-05-09 09:06:39 回复(0)
静态代码块先加载,而静态函数不会自动加载
发表于 2019-03-12 00:02:39 回复(0)
t.run   线程对象调用其匿名内部类方法
t.start  启动线程
发表于 2016-09-09 10:48:21 回复(0)
具有具有static的全局变量或方法,程序先执行这些,再进入main方法。
发表于 2016-04-06 22:26:47 回复(0)
应该是C,这里的start()是开启线程的方法,线程t调用后,就说明线程开启。
但是什么时间运行需要取决于什么时候获得时间片。有可能一开始就获得,有可能过段时间才会获得。
main也是一个线程(主线程)。所以说A、B的结果都有可能


发表于 2023-09-13 09:18:35 回复(0)
**,换了run()和start()没换答案,我是说怎么错了
编辑于 2022-11-24 21:53:09 回复(0)