Android中的线程有以下几个生命周期:
新建状态(New):线程对象已经创建,但还没有调用start()方法。
就绪状态(Runnable):调用了线程对象的start()方法后,线程进入就绪状态,等待系统调度执行。此时线程并没有真正开始执行,只是具备了执行的条件。
运行状态(Running):线程被系统调度执行,开始执行线程的run()方法。
阻塞状态(Blocked):线程在执行过程中,因为某种原因(如等待IO操作、获取锁等)暂时停止执行,并释放CPU资源,进入阻塞状态。在解除阻塞条件之前,线程将一直停留在该状态。
等待状态(Waiting):线程通过调用Object类的wait()方法或Thread类的join()方法,进入等待状态。等待状态下的线程需要其他线程的唤醒或者在等待指定时间内自动唤醒。
计时等待状态(Timed Waiting):线程通过调用Thread类的sleep()方法、wait()方法等,进入计时等待状态。与等待状态不同的是,计时等待状态下的线程可以在等待一定时间后自动唤醒。
终止状态(Terminated):线程执行完run()方法、抛出未捕获的异常或者调用了Thread类的stop()方法后,线程进入终止状态。终止的线程不可再次启动。