搜索
首页JavaJava入门java线程中start方法与run方法的区别是什么

java线程中start方法与run方法的区别是什么

May 01, 2021 pm 12:04 PM
javarunstart线程

java线程中start方法与run方法的区别是什么

区别对比如下:

我们知道Java中的线程是通过Java.lang.Thread来实现的,那么我们就可以通过实例化Thread一个对象来创建一个线程,然后再调用start()启动,但是Thread的一个特定的方法run()也可以启动线程,那么这两个方法有什么区别呢?

线程状态

在Java当中,线程通常有五种状态:创建、运行、阻塞、等待、终止
NEW------------------->新建状态,没有调用start()之前的状态
RUNNABLE---------->运行状态,(running执行中,ready就绪(等待cpu时间片))
BLOCKED------------>阻塞状态,
WAITING-------------->等待状态,没有明确的等待结束时间,调用wait()
TIMED_WAITING—>超时等待状态,有明确的等待时间,如:sleep(xxx)
TERMINATED-------->终止状态

多线程原理:

我们一般使用thread new一个线程,然后调用start方法启动,线程就会处于运行状态中ready,等待CPU调度,然后再执行线程里面的run()方法,使用start方法才真正实现了多线程运行,因为这个时候不用等待我们的run方法执行完成就可以继续执行下面的代码,这才叫多线程。

如果直接使用thread执行run方法会怎么样呢?

因为run方法是thread里面的一个普通的方法,如果直接调用run()方法,这个时候它会运行在主线程中的,因为程序中只有主线程一个线程,如果有两个线程,都是直接调用run()方法,那么他们的执行顺序一定是按顺序执行的,并没有实现多线程的目的。

免费学习视频分享:java视频教程

代码对比

public class ThreadDemo5 {
    public static final boolean flag=false;
    public static void main(String[] args) {
        Thread t1=new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        });
        t1.start();
    }
}

调用start()方法,线程名是默认的

387ab2f799ffb7eef73eb7fc693a5ab.png

public class ThreadDemo5 {
    public static final boolean flag=false;
    public static void main(String[] args) {
        Thread t1=new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println(Thread.currentThread().getName());
            }
        });
        t1.run();
    }
}

调用run(),线程名是main

40820666508de4dc07219b35b097e7f.png

相关推荐:java入门教程

以上是java线程中start方法与run方法的区别是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:csdn。如有侵权,请联系admin@php.cn删除

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用