下文讲述Java多线程的简介说明
此时该线程对象就处于新建状态
它保持这个状态直到程序 start() 这个线程
该线程就进入就绪状态
就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度
此时运行run()方法后
线程便处于运行状态
运行状态的线程可转换为:阻塞状态、就绪状态和死亡状态
失去所占用资源之后,该线程就从运行状态进入阻塞状态
当睡眠时间指定时间后或获得设备资源后可以重新进入就绪状态
可以分为三种:
线程的优先级是一个1~10的整数
每一个线程都会分配一个优先级-缺省情况下为5
当一个线程优先级比较高时,则比优先级低的线程更容易获取到系统资源
Java多线程
Java支持多线程何为线程? 一条线程为进程中单一顺序的控制流 一个进程中包含多个线程,也可并发多个线程,每个线程运行不同的任务
线程的生命周期
新建状态
运用new关键字和Thread类或其子类建立一个线程对象后此时该线程对象就处于新建状态
它保持这个状态直到程序 start() 这个线程
就绪状态
当线程对象调用了start()方法之后该线程就进入就绪状态
就绪状态的线程处于就绪队列中,要等待JVM里线程调度器的调度
运行状态
当就绪状态的线程获取 CPU 资源此时运行run()方法后
线程便处于运行状态
运行状态的线程可转换为:阻塞状态、就绪状态和死亡状态
阻塞状态
当一个线程执行了sleep(睡眠)、suspend(挂起)等方法失去所占用资源之后,该线程就从运行状态进入阻塞状态
当睡眠时间指定时间后或获得设备资源后可以重新进入就绪状态
可以分为三种:
- 等待阻塞:运行状态中的线程执行wait()方法,使线程进入到等待阻塞状态
- 同步阻塞:线程在获取 synchronized同步锁失败(因为同步锁被其他线程占用)
- 其他阻塞:通过调用线程的sleep()或join()发出了I/O请求时,线程就会进入到阻塞状态
当sleep() 状态超时,join() 等待线程终止或超时,或 I/O 处理完毕,线程重新转入就绪状态
死亡状态
一个运行状态的线程完成任务或由于其它原因导致线程转换为终止状态线程的优先级
线程的优先级:有助于操作系统调用线程的顺序线程的优先级是一个1~10的整数
每一个线程都会分配一个优先级-缺省情况下为5
当一个线程优先级比较高时,则比优先级低的线程更容易获取到系统资源
线程优先级注意事项: 线程优先级并不能保证其线程的运行顺序
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。