Java-Basic-7-多线程

线程状态与优先级

一图胜千言。

线程状态-菜鸟教程

其中,阻塞状态分为三种:

  • 等待阻塞:运行状态中的线程执行 wait() 方法,使线程进入到等待阻塞状态。
  • 同步阻塞:线程在获取 synchronized 同步锁失败(因为同步锁被其他线程占用)。
  • 其他阻塞:通过调用线程的 sleep()join() 发出了 I/O 请求时,线程就会进入到阻塞状态。当sleep() 状态超时,join() 等待线程终止或超时,或者 I/O 处理完毕,线程重新转入就绪状态。

线程优先级是整数:1 (Thread.MIN_PRIORITY ) - 10 (Thread.MAX_PRIORITY )。一般默认分配 NORM_PRIORITY(5)。优先级并不完全代表调度顺序。总不能把线程直接饿死吧。

创建线程

三种方法:

  • 通过实现 Runnable 接口;
  • 通过继承 Thread 类本身;(本质上也是实现了 Runable 接口的一个实例)
  • 通过 Callable 和 Future 创建线程。

Runnable