线程

作者: 灰色系男孩 | 来源:发表于2019-11-23 18:13 被阅读0次

    实现线程的方法

    (1)继承Thread类,重写run方法。
    (2)实现Runnable接口,并实现该接口的run方法。
    (3)实现Callable接口,重写call方法。

    停止线程的方法

    (1)使用stop方法强行终止线程(这个方法不推荐使用,因为stop和suspend、resume一样,也可能发生不可预料的结果)。不推荐
    (2)interrupt 方法可以用来请求中断线程,不安全,会抛异常。
    (3)使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。安全推荐使用

    线程的几种状态

    1.新建(NEW):----new Thread()
    2.可运行(RUNNABLE)----start(),等待CPU调度,就绪状态
    3.运行(RUNNING)----run()CPU开始执行run
    4.休眠(阻塞)(BLOCKED)----调用sleep()或者wait()
    5.死亡(DEAD)----run方法执行完毕,或者调用中断线程的方法

    线程相关的方法

    1. Java多线程中调用wait() 和 sleep()方法有什么不同?

    ANS:参考sleep()和wait()方法有什么区别

    2. Java中notify 和 notifyAll有什么区别?

    ANS:参考java中的notify和notifyAll有什么区别?

    3.Thread 类中的start() 和 run() 方法有什么区别?

    ANS:参考Java -- Thread中start和run方法的区别

    4.什么是ThreadLocal变量?

    ANS:参考ThreadLocal

    5.什么是FutureTask?

    ANS:参考Future,FutureTask和Callabe关系及使用详解

    6. Java中interrupted 和 isInterruptedd方法的区别?

    ANS:参考Thread中interrupted()方法和isInterrupted()方法区别总结

    7.为什么Thread类的sleep()和yield()方法是静态的?、

    ANS:Thread类的sleep()和yield()方法将在当前正在执行的线程上运行。所以在其他处于等待状态的线程上调用这些方法是没有意义的。这就是为什么这些方法是静态的。它们可以在当前正在执行的线程中工作,并避免程序员错误的认为可以在其他非运行线程调用这些方法

    8.在线程中你怎么处理不可捕捉异常?

    ANS:Thread.UncaughtExceptionHandler是java SE5中的新接口,它允许我们在每一个Thread对象上添加一个异常处理器。

    9.Thread.join的作用

    ANS:参考Thread.join的作用和原理

    线程相关参考:
    Android多线程编程——线程基础
    Java线程面试题合集(含答案)
    Java多线程:Thread类中的主要方法
    Thread.join的作用和原理
    sleep()和wait()方法有什么区别

    相关文章

      网友评论

          本文标题:线程

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