不管是多线程还是多进程,实际上都不太可能一直占用CPU资源,所有多线程的几种状态一定要掌握。
多线程的状态如下图:
所有的系统费资源是有限的,不管是多线程还是多进程都必须在执行一段时间后让出资源,交由其他的线程继续执行。
- 1、创建过程:开发者定义好了相应的线程类对象(每一个Thread类的实例都表示一个线程对象);
- 2、就绪状态:多线程的启动依靠的是start()方法,但是一定要记住当调用start()方法时所有的线程不是立即执行,而是进入一个等待的状态,等待CPU进行调度;
- 3、执行状态:当CPU执行调度了某一个线程对象之后,该线程对象开始执行run()方法或call()方法,但是这并不意味着线程一执行就持续占用CPU资源,而是在一段时间之后(一个时间片的时间之后),该线程就需要暂停执行;
- 4、阻塞状态:当某个线程不再执行时(中断、休眠或调度失效),那么该线程将进入到阻塞状态,如果此时线程没有执行完毕则由阻塞状态切换到就绪状态,重新等待CPU的执行调度。
- 5、终止状态:如果多线程的执行体执行完毕或者线程被强制性的结束,那么该线程就将进入终止状态,终止状态不会再进入到就绪状态,即:该线程将不会被继续执行。