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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package org.linuxsogood.misc;
public class TestMutiThread {
        public static void main(String[] args) {
                new Thread(new Runnable() {
                        @Override
                        public void run() {
                                for (int i = 0; i < 20; i++) {
                                        System.out.println(i+"hello.");
                                        try {
                                                Thread.sleep(1000);
                                        } catch (InterruptedException e) {
                                                e.printStackTrace();
                                        }
                                }
                        }
                }).run();
                new Thread(new Runnable() {
                       
                        @Override
                        public void run() {
                                for (int i = 0; i < 20; i++) {
                                        System.out.println(i+"test.");
                                        try {
                                                Thread.sleep(1000);
                                        } catch (InterruptedException e) {
                                                e.printStackTrace();
                                        }
                                }
                        }
                }).run();
                System.out.println("test end");
        }
}

当一个线程启动的时候,它的状态被调为了0,如果不是0的话会抛异常出来.然后把这个线程加入到了线程组.最后尝试调用start0方法,而start0方法是私有的,私有的一般是使用C语言写的.看来要调用系统底层,还是要通过C.Java中的多线程,其实底层是使用C代码来实现的.这也就是为什么调用线程中的start方法可以实现多线程的效果.而如果调用run方法的话,其实调用的就是自己写的那个runnable里,自己实现的那个run方法.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马