黑马程序员技术交流社区

标题: 线程问题 [打印本页]

作者: ELine    时间: 2015-1-7 20:59
标题: 线程问题
        public static void main(String[] args) {
                new Thread(){
                        @Override
                        public void run() {
                                super.run();
                                for (int i = 0; i < 100; i++) {
                                        System.out.println("Thread run");
                                }
                        }
                }.start();
                for (int i = 0; i < 100; i++) {
                        System.out.println("main run");
                }
        }

加入main函数先输出这100次,main函数会先结束吗!!

作者: bjuth    时间: 2015-1-7 21:25
应该由cpu决定吧 两种情况都有 拷下来试试

作者: huduzhi    时间: 2015-1-8 01:46
看cpu的调试,如果在run方法里sleep一定的时间,main方法会先跑完。
作者: ELine    时间: 2015-1-8 10:03
huduzhi 发表于 2015-1-8 01:46
看cpu的调试,如果在run方法里sleep一定的时间,main方法会先跑完。

main函数不是主函数吗,不用等待所有函数运算完才能结束的吗
作者: 以利亚    时间: 2015-1-8 10:04
这种事得问CPU啊,这谁能说的准呢!
作者: lwj123    时间: 2015-1-8 14:40
我觉得这样觉得的: 不一定的,在这里有两个线程分别为主线程还有new Thread(), 两个线程交替执行,谁先执行完,需要看操作系统的调度 看哪个线程的到执行权比较多。
作者: ELine    时间: 2015-1-8 22:04
lwj123 发表于 2015-1-8 14:40
我觉得这样觉得的: 不一定的,在这里有两个线程分别为主线程还有new Thread(), 两个线程交替执行,谁先执 ...

主线程不是要处理一些什么垃圾回收等操作么,不是一定最后结束的吗




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2