栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java启动线程的源码讲解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java启动线程的源码讲解

前文铺垫

  面向的读者是已经熟练使用过线程池,集成Runnable,直接new Thread 里面编写run方法

  虽然方式和种类很多,但是运行到源码层面方式其实只有一种,我们此篇文章就进行讲解

Runnable 源码

  

@FunctionalInterface
public interface Runnable {
    
    public abstract void run();
}

 Runnable 只是一个接口,所以一个类实现了Runnable,直接调用这个类的run方法和调用一个普通   的方法没什么区别,并不会启动一个线程       

 Thread 源码

  实现了Runnable
public class Thread implements Runnable
   Run
    @Override
    public void run() {
        if (target != null) {
            target.run();
        }
    }

 首先Thread实现Runnable 接口,那么Thread的run方法是否具备启动一个线程的特性,答案是否定的,Thread的run方法和普通方法没有任何区别

  

       run方法和普通方法没什么区别,和启动线程也无关

start 方法
public synchronized void start() {
   
        group.add(this);

        boolean started = false;
        try {
            start0();
            started = true;
        } finally {
            try {
                if (!started) {
                    group.threadStartFailed(this);
                }
            } catch (Throwable ignore) {
                
            }
        }
    }

 start方法调用start0,start0是一个native方法

private native void start0();

        唤起线程的方式只有一种,就是Thread类的 start 方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/425530.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号