面试问题总结
-
我们是否需要给线程设置为守护线程 ?
-
run方法是否可以抛出异常?如果抛出异常, 线程的状态会怎么样?
-
线程中如何处理某个未处理异常?
-
什么是多线程的上下文切换?
-
用suspend()和resume()来阻塞线程可以吗 ?为什么 ?
-
wait/notify、sleep异同 (方法属于哪个对象?线程状态怎么切换?)
-
在join期间,线程处于哪种线程状态?
-
守护线程和普通线程的区别
-
为什么线程通信的方法wait(), notify()和notifyAll()被定义在Object类里 ?而sleep定义在Thread类里?
-
wait方法是属于Object对象的,那调用Thread.wait会怎么样?
-
如何选择用notify还是nofityAll ?
-
notifyAll之后所有的线程都会再次抢夺锁,如果某线程抢夺失败怎么办?
-
如何处理不可中断的阻塞
-
线程有哪几种状态?生命周期是什么?
-
用程序实现两个线程交替打印0~ 100的奇偶数
-
手写生产者消费者设计模式
-
为什么wait()需要在同步代码块内使用,而sleep()不需要
-
有多少种实现线程的方法?思路有5点
-
实现Runnable接口和继承Thread类哪种方式更好?
-
一个线程两次调用start()方法会出现什么情况?为什么?
-
既然start()方法会调用run()方法,为什么我们选择调用start() 方法,而不是直接调用run()方法呢?
-
如何停止线程