美文网首页
Thread类——start,run,interrupted,i

Thread类——start,run,interrupted,i

作者: plugins | 来源:发表于2018-11-04 23:13 被阅读11次

根据sun解释,线程生命周期在java中有以下几种状态:初始(NEW) ,运行(RUNNABLE)阻塞(BLOCKED)等待(WAITING)超时等待(TIMED_WAITING)终止(TERMINATED)

一、synchronized void start()

start方法是开启一个线程的意思,已经调用start方法后再继续调用start方法会报错(IllegalThreadStateException)

* <p>* The result is that two threads are running concurrently: the

* current thread (which returns from the call to the

* <code>start</code>method) and the other thread (which executes its

* <code>run</code>method).

     上面是jdk原注释,启动启程会同时又两个线程工作,当前调用者线程执行从call处到Thread的start0方法,另一个线程时执行它的run方法,我们默认为当调用start方法,就有一个新的线程去执行run方法

  上述描述还有一个点,就是调用run方法的时候,虽然新的线程创建好了,但是只是一个就绪状态,只有当它争取到了cpu资源,就会去执行

二、run方法

run方法是Thread类的成员方法,我们创建线程通常有两种方式,当用实现Runnable的形式,开启线程时,它会调用Thread的run方法,

而我们用集成Thread的形式的话,它调用我们重写的run方法,如何我们直接调用run方法的话,就不会创建新的线程

三、interrupted()和isInterrupted()

interrupted是Thread的静态方法,内部实现是当前线程调用isInterrupted方法,而isInterrupted是Thread的实例方法

当前线程被中断后,intrerrupted方法返回true,第二次继续调用会返回false,是因为状态被清理了,既设置为了false

而isInterrupted方法不会清除线程的状态

相关文章

  • Thread类——start,run,interrupted,i

    根据sun解释,线程生命周期在java中有以下几种状态:初始(NEW),运行(RUNNABLE),阻塞(BLOCK...

  • Java中实现多线程的方式

    [TOC] 一、继承Thread类 继承Thread类,重写run方法,调用Thread的start()方法启动线...

  • Java实现多线程的三种方式

    1. 继承Thread类 继承Thread后,调用start()方法就是执行类类中的run()方法,这也是启动...

  • Java 多线程基础知识

    Thread.run和Thread.start的区别: thread.run是方法,调用thread.run,那么...

  • 多线程

    多线程 创建与启动 方式1:继承于Thread类 继承Thread类 重写run方法 创建对象 调用start方法...

  • Android、Java面试题:Thread的start和run

    Android、Java面试题:Thread的start和run方法的区别 Thread类是继承Runnable的...

  • Java多线程(1)

    开启线程的三种方式? 继承Thread类,重写run(),调用start; 实现Runnable接口,复写run(...

  • 多线程

    Thread类(须有start调用run才可启动线程) public void start()使该线程开始执行;J...

  • java线程、线程池的使用

    一、如何创建线程 1、将类声明为Thread的子类,重写Thread类的run方法,使用子类的实例调用start(...

  • Java面试题

    Java API doc 1. 下面哪些是Thread类的方法()A start() B run() ...

网友评论

      本文标题:Thread类——start,run,interrupted,i

      本文链接:https://www.haomeiwen.com/subject/wyykiftx.html