•   欢迎来到21NN网.
  •   请记住本站网址www.21nn.cn

Java中Thread.start()和Thread.run()之间的区分【JAVA教程】,Java,start(),run()

摘要: 在Java的多线程观点中,start()和run()是两个最主要的要领。那末它们之间的区分是什么?下面本篇文章就来带人人认识一下start()和run()要领,引见它们之间的区分,愿望对人人有所协助。...
在Java的多线程观点中,start()和run()是两个最主要的要领。那末它们之间的区分是什么?下面本篇文章就来带人人认识一下start()和run()要领,引见它们之间的区分,愿望对人人有所协助。

Java中的start()要领

线程类的start()要领能够用来启动线程;该要领会在内部挪用Runnable接口的run()要领,以在零丁的线程中实行run()要领中指定的代码。【视频教程引荐:Java教程】

start()要领启动线程实行以下使命:

● 它统计了一个新线程

● 线程从New State移动到Runnable状况。

● 当线程有时机实行时,它的目的run()要领将运转。

Java中的run()要领

线程类的run()要领是Runnable接口的一个笼统要领,由java虚拟机直接挪用的,不会建立的新线程。

start()要领和run()要领的区分

1、要领的定义

start()要领在java.lang.Thread类中定义;而,run()要领在java.lang.Runnable接口中定义,必须在完成类中重写。

2、新线程建立

当顺序挪用start()要领时,会建立一个新线程,然后实行run()要领。然则假如我们直接挪用run()要领,则不会建立新的线程,run()要领将作为当前挪用线程自身的通例要领挪用实行,而且不会发作多线程。

示例:

class MyThread extends Thread { 
    public void run() 
    { 
System.out.println("\n"); 
        System.out.println("当前线程的称号: "
                           + Thread.currentThread().getName()); 
        System.out.println("run()要领挪用"); 
    } 
} 
  
class demo { 
    public static void main(String[] args) 
    { 
        MyThread t = new MyThread(); 
        t.start(); 
    } 
}

输出:

正如我们在上面的例子中所看到的,当我们挪用线程类实例的start()要领时,会建立一个新的线程,默许称号为Thread-0,然后挪用run()要领,并在个中实行一切内容。新建立的线程。

如今,让我们尝试直接挪用run()要领而不是start()要领:

class MyThread extends Thread { 
    public void run() 
    { 
System.out.println("\n"); 
        System.out.println("当前线程的称号: "
                           + Thread.currentThread().getName()); 
  
        System.out.println("run()要领挪用"); 
    } 
} 
  
class GeeksforGeeks { 
    public static void main(String[] args) 
    { 
        MyThread t = new MyThread(); 
        t.run(); 
    } 
}

输出:

正如我们在上面的例子中所看到的,当我们挪用MyThread类的run()要领时,没有建立新线程,而且在当前线程即主线程上实行run()要领。因而,没有发作多线程。run()要领是作为一般函数被挪用。

3、屡次挪用

start()要领不能屡次挪用,不然抛出java.lang.IllegalStateException;而,run()要领能够举行屡次挪用,由于它只是一种一般的要领挪用。

以上就是本篇文章的全部内容,愿望能对人人的进修有所协助。更多精彩内容人人能够关注ki4网相干教程栏目!!!

以上就是Java中Thread.start()和Thread.run()之间的区分的细致内容,更多请关注ki4网别的相干文章!

分享到:

发表评论

评论列表

还没有评论,快来说点什么吧~

公众号二维码

微信公众号