Java线程常见面试题
v 多线程实现手段: (1)、继承Thread类 (2)实现Runable接口 (3)使用线程池 v 线程控制在那个包: java.util.concurrent。 (1) 提供了线程的运行、 (2) 线程池的创建、 (3) 线程生命周期的控制 v 线程池 java.util.concurrent.Executors创建线程池的四种方法 (1) newCachedThreadPool创建 非固定数量 , 可缓存的线程池 ,若线程池超过处理需要,可灵活回收空线程,若没有线程可回收,则建新 (2) newFixedThreadPool 固定线程池 ,底层是无界队列,可 控制最大并发数 ,超出的线程会在队列中等待 (3) newScheduledThreadPool 定时执行线程池 , 支持定时及周期性任务执行 (4) newSingleThreadExecutor单线程化的线程池,只会用唯一的工作线程来执行任务, 保证所有任务按照顺序执行 。 如果这个唯一的线程因为异常结束,那么会有一个新的线程来替代它 v Sleep()和 Wait()的区别 (1) Sleep()是Thread的方法,Wait()是Object的方法 (2) Sleep( 休眠 )暂停指定时间,执行是CPU让出来,但对象锁继续保持。休眠时间到之后自动回复就绪状态。Wait( 线程暂停执行 )当前线程放弃对象锁