A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 雷雨天 中级黑马   /  2016-9-17 21:26  /  861 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

视频中老师用这个方法证明JVM起码执行了主线程和垃圾回收线程,但是我不懂的是两个for循环不应该是按先后顺序,先把第一个for执行完再执行后一个for吗?
为什么会穿插着输出"我是主线程的代码块"和"垃圾已经被清理了"??

代码如下:
package com.heima.thread;

public class Demo1_Thread {

        /**
         * @param args
         */
        public static void main(String[] args) {
                for (int i = 0; i < 100000; i++) {
                        new Demo();
                }
                for (int i = 0; i < 10000; i++) {
                        System.out.println("我是主线程的代码块");
                }
        }
}
class Demo {
        @Override
        public void finalize() {
                System.out.println("垃圾被清理了");
        }
       
}

2 个回复

正序浏览
详情请看《深入了解java虚拟机》~~~
回复 使用道具 举报
就是两个线程抢执行权,谁抢到了谁执行,只是这个过程非常非常非常块
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马