怎么在java线程中使用start

本篇文章为大家展示了怎么在java线程中使用start,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联主营甘州网站建设的网络公司,主营网站建设方案,APP应用开发,甘州h5小程序开发搭建,甘州网站营销推广欢迎甘州等地区企业咨询

创新互联建站2013年至今,先为南江等服务建站,南江等地企业,进行企业商务咨询服务。为南江企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

Java有哪些集合类

Java中的集合主要分为四类:1、List列表:有序的,可重复的;2、Queue队列:有序,可重复的;3、Set集合:不可重复;4、Map映射:无序,键唯一,值不唯一。

1.start()概念

开始一个线程后,线程就进入就绪状态,使线程所代表的虚拟处理机处于可运行状态,这意味着它可以由JVM调度并执行。但是这并不意味着线程就会立即运行。只有当cpu分配时间片时,这个线程获得时间片时,才开始执行run()方法。

2.start()与run()区别

start()是方法,它调用run()方法,而run()方法是你必须重写的。run()方法中包含的是线程的主体(真正的逻辑)。

3.start()启动线程实例

new Thread(() -> {
    // todo
}).start();
 
// JDK 源码
public synchronized void start() {
 
    if (threadStatus != 0)
        throw new IllegalThreadStateException();
 
    group.add(this);
    boolean started = false;
    try {
        start0();
        started = true;
    } finally {
        try {
            if (!started) {
                group.threadStartFailed(this);
            }
        } catch (Throwable ignore) {}
    }
}

线程启动方法 start(),由 JVM 调用此线程的 run 方法,使线程开始执行。其实这就是一个 JVM 的回调过程。

另外 start() 是一个 synchronized 方法,但为了避免多次调用,在方法中会由线程状态判断。threadStatus != 0。

group.add(this),是把当前线程加入到线程组,ThreadGroup。

start0(),是一个本地方法,通过 JNI 方式调用执行。这一步的操作才是启动线程的核心步骤。

上述内容就是怎么在java线程中使用start,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


新闻名称:怎么在java线程中使用start
本文地址:http://myzitong.com/article/jjieeo.html