Java多线程并发编程基础之一

线程的生命周期


Java多线程并发编程基础之一_第1张图片
如图,线程的生命周期总共分为五步:

  1. 新建状态:创建线程。
    一般创建线程有三种方式:1.实现Runnable接口 2.继承Thread对象 3.实现Callable接口通过FutureTask包装器来创建Thread线程 4.使用ExecutorService、Callable、Future实现有返回结果的多线程

  2. 就绪状态:通过调用star()方法,可以让线程进入就绪状态。

  3. 运行状态:当某线程抢占到cpu的执行权的时候,就会调用run()方法,使得线程变成运行状态

  4. 阻塞状态:阻塞状态有三种类型:
    1.超时状态: 通过调用sleep(),join()方法或者I/O请求会使线程进入超时阻塞状态,sleep时间到期,join线程终止或I/O请求完成后变成就绪状态

    2.等待状态 : 通过调用wait(),join()方法使线程进入等待阻塞状态,调用notify(),notifyAll()方法让线程进入就绪状态

    3.同步阻塞状态: 进入synchronized代码块或方法会使线程进入同步阻塞状态,当他获取到锁时,就会进入就绪状态

  5. 死亡状态:程序执行完成后


线程的六种状态

NEW:状态是指线程刚创建, 尚未启动

RUNNABLE:状态是线程正在正常运行中, 当然可能会有某种耗时计算/IO等待的操

你可能感兴趣的:(并发编程)