Java多线程(一)进程与线程

151 阅读3分钟

这是我参与11月更文挑战的第1天,活动详情查看:2021最后一次更文挑战

前言

大家好,我是MouthMouth,本次想跟大家聊一下Java多线程这一块,在java多线程中拥有许多数不清的知识点,就连我自己也还没有完全搞清楚多线程的东西,所以本文章是作为一个引导与简单了解,希望可以化繁为简,然后慢慢带大家吃透多线程。

image.png

多线程

聊线程之前先聊一下计算机,众所周知计算机是一个二进制机器,他的诞生就是为了解决人类重复性工作,以机械代替人工所研发出来设备。最开始计算机执行一个任务没有问题,但是他的效率太慢了,多个任务一起来怎么办。这就会导致计算机的一个处理缓慢,他需要处理掉前面的任务才可以继续处理下一个任务,有痛点那就需要解决,所以人们除了一个解决方案,那就是进程。

进程

进程,可以想象成一条大路,或者一个大任务,进程的定义它拥有自己的内存,在内存中划分一片区域给当前进程使用。不同的进程拥有不同的区域,他们之间数据具有隔离性质。进程之间互不影响,比如说现在有AB两个进程程,A进程跑起来拥有自己的内存,B进程跑起来也拥有自己的内存,A进程内存存放数据,B进程是看不到的。进程的出现让人们使用计算机变得更加高效,两个进程相当于计算机里面有两人再给你打工了。但是两人的任务量都特别重,也就是进程的任务特别重那就会又出现上面的情况,又开始处理缓慢当然这次缓慢肯定比上一次有提升,但是对于cpu来说计算这样单个的大任务还是太过于繁重了。所以再次有了新的方案那就是线程。

线程

进程上面讲了是一条大路,那么线程就是被大路的虚线划分了两条道路出来,那么下面每一条路那就是线程了。路多了,车走的也多了。又或者比喻成线程的出现相当于进程升级为了主管,主管下面管着多个员工,这些员工可以给你干活,帮主管分摊任务,最后主管只用验收任务,也就是完成任务效率又比之前高了一倍。

image.png

总结

给大家打了很多的比喻,不知道能否笼统的认识到线程与进程的区别,本篇就是个抛砖引玉,下一章节会在深入了解一下进程与线程。

  1. 进程是程序的一次执行过程,也就是任务
  2. 进程与进程之间数据相互隔离
  3. 进程下有多个线程,当前进程下线程只能与当前进程下线程共享数据