线程

2019-11-23  本文已影响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()方法有什么区别

上一篇下一篇

猜你喜欢

热点阅读