认识多线程
大家好,从今天开始,我想和大家分享 Java多线程系列教材。接下来我们通过一个简单的例子来感受一下单线程和多线程的区别。
这是一个简单的单线程程序,它里面有三条输出语句,分别输出的是123,这个程序它的执行结果永远都是123。因为单线程程序它的执行顺序是顺序执行的,也就是说自上而下一条一条依据依次执行的。
那么下面我们把这个单线程程序用多线程来改造一下,也就是说让它变成一个多线程程序。
那么我们把三条输出语句分别放入三个不同的线程当中,然后再启动这三个线程。
我们再来看一下它的执行结果和之前的结结果有什么不同。我们发现我们多线程程序执行的结果是有好几种不同的结果,比如说2013、231132等等情况,
这就说明我们多线程的执行顺序不是顺序执行的,而是并行执行的。
那么顺序执行,它的顺序在一开始的时候已经决定好了,就像这个123一样,那么它的执行顺序也就是123。
而我们的并行执行它的顺序一开始是同时执行的,所以说最终的结果是不确定的。
那么他的执行顺序取决于什么?取决于哪个线程优先获得CPU的执行权,谁先获得了 CPU的执行权,谁就优先被执行。
我们再来看一下,对比一下单线程程序和多线程程序。
我们发现多线程程序里面频繁出现了一个关键字,这个关键字叫做thread。那么中文翻译过来就是线程,什么是线程呢?
我们可以先看一下现成的基本概念是什么?
线程是进程的最基本执行单位,是CPU调度的最小单位,
我们这句话我们要结合我们一个比喻来看,如果说我们把进程比作成一个工厂,
那么线程就是这个工厂中的一个机器工人,机器工人工作的时候需要电,他没电他就不工作,
那电从何来,也就是电从CPU里面的CPU就可以,就好比电池它可以给机器工人供电,那么CPU的核心数就好比,就是这个电池上面有几个充电线,而充电线就是连接电池和机器人功能的。
那么我们再来结合线程的概念来说的话,一个工厂他想要运行,它里面至少需要一个机器工人,而机器工人他想要工作他就需要电。
所以说它就需要CPU给它供电统领一个进程,它里面至少需要一个线程,而线程的运行它离不开CPU。
那么平时我们所说的单线程单线程就好比就是一个工厂配一个工人,统领我们的单号CPU也是一样的,就好比一个电池配合充电线,
单进程多线程的话,就是一个工厂里面有多名工人,然后多核CPU的话就是一个电池配多个充电线,那么这也就意味着可以给多名工人同时充电m这个多名工人可以同时工作,那么这也就是多线程的核心,对不对?
多线程的存在就是为了同步完成专项任务的,而是提高了资源的使用效率。
什么时候开始使用线程
那么说呢这么多,那么什么时候开始使用线程,那么在同一时间需要完成多项任务的时候,我们就可以使用到线程。比如说我们同时下载多张照片,同时上传多个文件,等等都是需要使用到线程。
总结
最后我们来总结一下今天内容,今天我们主要说了两点,第一点我们说了线程的基本概念,也就是说线程是进程的基本执行单位,也就是说线程是进程中做事的那一个。然后第二点就是我们说的什么时候需要线程,我们在同一时间需要完成多项任务的时候,这个时候我们就需要使用到线程。
附录:
笔记完整文本:
大家好,从今天开始,我想和大家分享 Java多线程系列教材。接下来我们通过一个简单的例子来感受一下单线程和多线程的区别。这是一个简单的单线程程序,它里面有三条输出语句,分别输出的是123,这个程序它的执行结果永远都是123。因为单线程程序它的执行顺序是顺序执行的,也就是说自上而下一条一条依据依次执行的。那么下面我们把这个单线程程序用多线程来改造一下,也就是说让它变成一个多线程程序。 那么我们把三条输出语句分别放入三个不同的线程当中,然后再启动这三个线程。我们再来看一下它的执行结果和之前的结结果有什么不同。我们发现我们多线程程序执行的结果是有好几种不同的结果,比如说2013、231132等等情况,这就说明我们多线程的执行顺序不是顺序执行的,而是并行执行的。那么顺序执行,它的顺序在一开始的时候已经决定好了,就像这个123一样,那么它的执行顺序也就是123。 而我们的并行执行它的顺序一开始是同时执行的,所以说最终的结果是不确定的。那么他的执行顺序取决于什么?取决于哪个线程优先获得CPU的执行权,谁先获得了 CPU的执行权,谁就优先被执行。我们再来看一下,对比一下单线程程序和多线程程序。我们发现多线程程心里面频繁出现了一个关键字,把这个关于字叫做thread。那么中文翻译过来就是线程,什么是线程呢?我们可以先看一下现成的基本概念是什么? 新城市进程的最基本执行单位是CPU调度的最小单位,我们这句话我们要结合我们一个比喻来看,如果说我们把金诚比作成一个工厂,那么线程就是这个工厂中的一个机器工人,机器工人工作的时候需要电,他没电他就不工作,那电从何来,也就是电从CPU里面的CPU就可以,就好比电池它可以给机器工人供电,那么CPU的核心数就好比就是这个电子上面有几个充电线,而充电线就是连接电池和机器功能的。那么我们再来结合现成的概念来说的话,一个工厂他想要运行,它里面至少需要一个机器工人,而机器工人他想要工作他就需要电。 所以说它就需要CPU给它供电统领一个进程,它里面至少需要一个线程,而线程的运行它离不开CPU。那么平时我们所说的单线程单线程就好比就是一个工厂配一个工人,统领我们的单号CPU也是一样的,就好比一个电池配合充电线,单进程多线程的话,就是一个工厂里面有多名工人,然后多核CPU的话就是一个电池配多个充电线,那么这也就意味着可以给多名工人同时充电m这个多名工人可以同时工作,那么这也就是多线程的核心,对不对? 多线程的存在就是为了同步完成专项任务的,而是提高了资源的使用效率。那么说呢这么多,那么什么时候开始使用线程,那么在同一时间需要完成多项任务的时候,我们就可以使用到县城。比如说我们同时下载多张照片,同时上传多个文件,等等都是需要使用到线程。最后我们来总结一下今天内容,今天我们主要说了两点,第一点我们说了现成的基本概念,也就是说线程是进程的基本执行单位,也就是说线程进程中做事的那一个。然后第二点就是我们说的什么时候需要线程,我们在同一时间需要完成多项任务的时候,这个时候我们就需要使用到线程。 好,在视频的之后想要了解更多教化教材,请关注我们。