小白如何理解多线程
网上很多对于线程的解释,根本就不是小白能够轻易理解的,即使看了一堆视频,你还是会懵(理解能力超强的除外),啥是多线程?怎么应用?还是不懂!!!
我的解释也不准确,只是我自己的小白理解,想要深入的理解,还是要看书!!!!这个要注意
线程就是一段代码,一段写在run()方法里面的代码,不同的线程都会去执行这个run()方法,就是多线程,在不同的线程去执行这段代码时,会处于不同的状态,总的来说,线程有5种状态,
1.被创建状态:创建了,但是没有执行start()方法,待执行了start()方法后,才可能处于下面几种状态
2.运行状态:这个时候,线程就在执行run()里面的程序,就是具备了所谓的“执行权”和“执行资格”。
3.冻结状态:就是在执行状态的线程,调用了sleep()或wait()方法,转到了冻结状态,注意:是从运行状态转过来的。这个时候,线程把运行状态的“执行权”和“执行资格”全部释放了。
4.临时阻塞状态:这个状态有两个来源,一个是新建线程调用start()方法来的,另一个是冻结状态的sleep时间到或被notify唤醒了。这个时候的线程具备“执行资格”但是不具备“执行权”,其实就是处于竞争状态,竞争“执行权”。
5.死亡状态:线程的run()方法执行结束了。
其实所有对线程操作都是围绕着这几种状态执行的,产生所谓的随机性。如下图(这个图是参照毕向东老师课程的):
本篇文章,对多线程的介绍很不准确,想深入了解,一定不要参照这个。这只是LZ自己当初对多线程的迷茫,后来自己多次思考理解的,但我想对纯小白还是有一丢丢帮助,就总结了一下。