创建线程的三种方式:
(1)继承Thread类,重写run方法
(2)实现Runnable接口,实现run方法
(3)实现Callable接口
获取线程id和名称:
(1)普遍适用:Thread.CurrentThread().getId() / Thread.CurrentThread().getName()
(2)继承Thread类适用:this.getId() / this.getName()
线程的常见方法:
(1)sleep:当前线程主动休眠相应毫秒
(2)yied:当前线程主动放弃时间片,回到就绪状态,竞争下一次时间片
(3)join:其他线程加入当前线程中,阻塞当前线程,知道加入线程执行完毕
(4)setPriority:设置优先级,默认为5,优先级越高,获取cpu的机会越多
(5)setDaemon:设置为守护线程,前台线程执行完,守护线程自动结束
线程状态转换:
线程通信:
①wait :释放锁,进入等待队列
②notify :唤醒等待的线程