线程
线程实现方式
1、继承Thread类
2、实现Runnable接口(推荐,因为解耦)
3、实现Callable接口(了解)
线程状态
1、创建状态
2、就绪状态
3、运行状态
4、阻塞状态
5、死亡状态
线程基本方法
1、线程休眠sleep
2、线程礼让yield
3、线程强制执行join,其它线程阻塞
线程优先级
Priority默认是5,setPriority(),getPriority()
守护线程
daemon,setDaemon()方法
线程同步
synchronized方法,直接加在void前面
synchronized块,会引发死锁现象,synchronized(Obj){},Obj是会变化的量
CopyOnWriteArrayList(JUC)
Lock、ReentrantLock(可重入锁)要把lock与unlock放在try-catch-finally里面,unlock在finally
线程通信
生产者消费者模式,wait()与notify()方法----只能在同步方法或同步块中使用,否则会抛出异常
管程法,信号灯法
线程池
ExecutorService,Executor,execute(),shutdown()
- 提示:每个对象都有一把锁,sleep不会释放锁.