(一)多线程说学逗唱:关于线程那不得不说的二三事

  • 为什么一上来就要写这个 这个是啥,那个那个是啥,直接进去主题不好吗?以前我也是这么想的,可是后来呀…总之,一个不刨根问底的程序员不是好程序员,要深究一个知识点还就得知道他是从哪里来,到哪里去,既然来到这个事件,那就必然会留下点什么痕迹。在学习Java多线程之前,你还别说,还真就绕不开给你讲讲什么是进程、什么是线程、什么是资源分配和调度、恨不得啊先把操作系统给各位看官一五一十地先读它个一遍,奈何游戏太好玩也只想快点了事上战场吃把鸡。闲话不多说,这就开始进入主题…

进程是啥概念?

  • 说到进程,我相信绝大多数人都大致上了解是个啥,懒得打字,百度一波是这么描述的:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体
  • 招式教给你了,剩下的也就只剩下理解了。先看到基本单位这几个字,啥是基本单位?数学物理化学中见过不少单位,它是量化物质让人可以大致知道某物多少、大小或长短的概念(大致就是这个意思)。但是在计算机中,摸不着看不见,说进程是基本单位可能你会很难理解也是情有可原的。在使用计算机的时候我们经常根据自己的喜好安装不同的软件(应用程序),安装好后启动起来程序就能正常运行,这时该程序在计算机上就处于运行状态,占用着计算机的众多资源,比如内存、显卡、声卡等,因此你把这一软件正常运行时在计算机中称之为一个进程就可以,更为直观的显示就是打开电脑的任务管理器,你说运行的程序就直观地显示在进程那一栏之中。换言之,一个exe程序理解成为一个“进程”好像也不为过…

在这里插入图片描述

线程是啥概念?

  • 简单地说:线程可以理解为在进程中独立运行的子任务。就拿我最喜欢的一件事情来说吧,听音乐。听音乐我最喜欢的音乐软件就是网易云音乐,为什么呢?因为网易云音乐中居住着众多有故事的文艺青年,每听一首歌我都喜欢看下面关于人生、爱情或哲理的评论,总觉得啊,他们的生活怎么百般滋味,而自己只能与代码相依为命。上面说到可以吧一个进程比作一个软件的运行,没毛病,那么很多软件在运行的时候都不只是做一件事情,就像听音乐的同时细细品味下面的评论,看完一屏刷一屏,也不会出现我听音乐的时候看不了评论或者刷新评论音乐就戛然而止的情况。这时候很显然地就可以知道在网易云音乐这一进程执行的过程中,必然地有多个线程在执行不同的功能模块,歌曲播放是一个线程,评论系统是一个线程。计算机的更新换代是非常快的,现在的电脑基本都是多CPU的,CPU的运行速度快到无法想象,因此一个程序运行时也能够在同一时间执行多个线程,达到同时的目的。

  • 了解了进程和线程的概念之后,我们也就大致上知道了为什么多线程在程序中的地位如此之重要,它不但表现在丰富了程序的功能吗,更表现在资源利用率和节约了时间上面。在今天,绝大部分的程序也都是多线程的,能够同时满足用户的多种需求而不需要浪费不必要的等待时间…我们作为程序员,程序的创造者,在编码的过程中需要考虑的就是提高程序的运行效率,满足用户的需求,要做到这一点,学好多线程技术必不可少。

猜你喜欢

转载自blog.csdn.net/WJHelloWorld/article/details/84863608