zoukankan      html  css  js  c++  java
  • java使用run和start后的线程引用

    public class ThreadDemo extends Thread {
        @Override
        public void run() {
            for(int i = 0; i <= 5; i++) {
                try {
                    System.out.println(currentThread().getName() + "---" + i);
                    sleep(100);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static void main(String[] args) {
            ThreadDemo t = new ThreadDemo();
            t.setName("t");
            t.start();  //打印的是t线程
            t.run();    //打印主线程main
        }
    }
    结果:

     分析:

     1 程序运行开始,jvm会自动创建线程main,也就是主线程
    2 主线程在执行代码时,创建一个线程,当线程调用start()后,就启用了线程,
    主线程继续往下执行代码。被启用的线程内部会自动调用run方法(start0() 本地方法或者说底层操作系统),
    所以此时run方法是在该线程内运行
    3 实例.run()仅仅只是调用对象的方法,与普通方法无差别,并没有启动新的线程,所以该方法还是在main线程内使用
  • 相关阅读:
    ftp命令行敲不了
    转载 vsftpd安装
    ftp上传不了故障
    mysql导入数据方法和报错解决
    time使用方法
    python 进程Queue
    python 进程事件
    python 进程信号量
    python 进程锁
    python 守护进程
  • 原文地址:https://www.cnblogs.com/yewook/p/13437086.html
Copyright © 2011-2022 走看看