线程与进程的区别(什么是进程和线程)
一、线程与进程的区别
先简单说说线程与进程的概念:
(1)进程是指一个内存中运行的应用程序,比如在Windows系统中,一个运行的exe就是一个进程。
(2)线程是指进程中的一个执行流程。
区别:
一个程序至少有一个进程,而一个进程至少有一个线程。一个应用程序可以同时启动多个进程。例如对于IE浏览器程序,每打开一个IE浏览器窗口,就启动了一个新的进程。而线程则是指进程中的一个执行流程,一个进程可以有多个线程,每个线程分别执行不同的任务,当进程内的多个线程同时运行时,这种运行方式就被称为并发运行。
另外,线程与进程还有一个非常重要的区别:每个进程在执行过程中都拥有独立的内存单元,而同一个进程中的多个线程则共享内存,从而极大地提高了程序的运行效率。
二、对多线程并发的理解
多线程并发只是表面和感觉上的并发,并不是实质上的并发。一个线程要运行,它必须占有CPU,而我们目前用的计算机大多都是单CPU的,所以一次最多只能有一个线程获取CPU并运行。
多线程的实质是"最大限度地利用CPU资源",当某一个线程的处理不需要占用CPU而只需要和I/O等资源打交道时,让其他线程有机会获得CPU资源。这有点类似于"统筹方法",例如让你打扫房子和烧水,要在最短的时间内做好这两件事,你一定会想到先把水烧上,然后在等水烧开的空闲时间中去打扫房子,而不是先打扫好了再去烧水,也不是先烧好了再去打扫,这个例子里面,你是那个唯一的CPU,而烧水和打扫就是两个线程。
虽然CPU只有一个,但是它在多个线程之间频繁切换,当切换的频率高到一定程度时,我们就感觉所有的线程在同时运行,于是感觉这多个线程是并发的。因此,并发并不是真的指多个线程同时运行,它仅仅只是形容一种现象。就好像说有些人是"铁人"一样,仅仅只是用于形容某个人不怕苦不怕累,像个"铁人"。
1. 并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。其中两种并发关系分别是同步和互斥
2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。
3. 同步:进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程必须等待。具有同步关系的一组并发进程相互发送的信息称为消息或事件。
其中并发又有伪并发和真并发,伪并发是指单核处理器的并发,真并发是指多核处理器的并发。
4. 并行:在单处理器中多道程序设计系统中,进程被交替执行,表现出一种并发的外部特种;在多处理器系统中,进程不仅可以交替执行,而且可以重叠执行。在多处理器上的程序才可实现并行处理。从而可知,并行是针对多处理器而言的。并行是同时发生的多个并发事件,具有并发的含义,但并发不一定并行,也亦是说并发事件之间不一定要同一时刻发生。
5. 多线程:多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码。多线程可以实现线程间的切换执行。
6. 异步:异步和同步是相对的,同步就是顺序执行,执行完一个再执行下一个,需要等待、协调运行。异步就是彼此独立,在等待某事件的过程中继续做自己的事,不需要等待这一事件完成后再工作。线程就是实现异步的一个方式。异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。
异步和多线程并不是一个同等关系,异步是最终目的,多线程只是我们实现异步的一种手段。异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回而可以做其它的事情。实现异步可以采用多线程技术或则交给另外的进程来处理。
为了对以上概念的更好理解举一个简单例子, 假设我要做 烧开水,举杠铃100下, 洗衣服 3件事情。
烧开水 这件事情, 我要做的事情为, 准备烧开水 1分钟, 等开水烧开 8 分钟 , 关掉烧水机 1分钟
举杠铃100下 我要做的事情为, 举杠铃100下 10分钟
洗衣服 我要做的事情为, 准备洗衣服 1分钟, 等开水烧开 5 分钟 , 关掉洗衣机 1分钟
单核情况下
同步的完成,我需要做的时间为 1 8 1 10 1 5 1 = 27 分
如果异步,就是在等的时候,我可以切换去做别的事情
准备烧开水(1) 准备洗衣服(1) 举50下杠铃 (5)分钟 关洗衣机 1分钟 举杠铃20下 (2)分钟 关烧水机 1分钟 举30下杠铃(3)分钟
1 1 5 1 2 1 3 =14 分钟
双核 异步 并行
核1 准备烧开水 1分钟 举杠铃50下(5)分钟 等待3分钟 关掉烧水机 1分钟
核2 准备洗衣服 1分钟 举杠铃50下(5)分钟 关掉洗衣机 1分钟 等待3分钟
其实只花了 1 5 3 1 = 10分钟
其中还有双核都等待了3分钟
双核 异步 非并行
核1 举杠铃100下(10)分钟
核2 准备烧开水 1分钟 准备洗衣服 1分钟 等待5 分钟 关掉烧水机 1分钟 等待 1 分钟 关掉洗衣机 1分钟
其实只花了 1 5 3 1 = 10分钟
多线程的做法
单核下
线程1 准备烧开水 1分钟, 等开水烧开 8 分钟 , 关掉烧水机 1分钟
线程2 举杠铃100下 10分钟
线程3 准备洗衣服 1分钟, 等开水烧开 5 分钟 , 关掉洗衣机 1分钟
cpu 可能这么切换 最理想的切换方式
线程1 准备烧开水1 sleep 1 sleep 5 sleep 1 sleep 2 关开水 1分钟 exit
线程2 sleep 1 sleep 1 举杠铃50 5分钟 sleep 1 举杠铃20 2分钟 sleep1 举杠铃30下 3分钟
线程3 sleep 1 准备洗衣服1 分钟 sleep 5 关洗衣机1分钟 exit
最后使用了 14分钟 和异步是一样的。
但是实际上是不一样的,因为线程不会按照我们设想的去跑, 如果线程2 举杠铃先跑,整个流程的速度就下来了。
异步和同步的区别, 在io等待的时候,同步不会切走,浪费了时间。
如果都是独占cpu 的业务, 比如举杠铃的业务, 在单核情况下 多线和单线 没有区别。
多线程的好处,比较容易的实现了 异步切换的思想, 因为异步的程序很难写的。多线程本身程还是以同步完成,但是应该说
比效率是比不上异步的。 而且多线很容易写, 相对效率也高。
多核的好处,就是可以同时做事情, 这个和单核完全不一样的。
正宗82年拉菲多少钱(好红酒和差红酒的口感区别)拉菲是享誉世界的法国波尔多葡萄酒,也是最为昂贵的葡萄酒之一,是法国红酒的代表。拉菲红酒价格平均每瓶750mL的售价可达到911美金(合约人民币6288元)。小拉菲价格上涨迅速,部分
为什么是82年的拉菲(为什么总说82年的拉菲)享誉世界的法国波尔多葡萄酒之一的拉菲恕在下只在电视里听说过,最近办公室动不动就来瓶82年的拉菲真是快要吓死宝宝了,那82年的拉菲是什么梗呢?我们来看看吧!82年的拉菲是什么意思因为
力帆320怎么样(12年力帆320多少钱一辆)现在的丈母娘,一张嘴就是要房要车。然而,上有政策,下有对策。现在车市可选择的种类愈来愈多,对于刚出社会打拼的人们来说,4万元也能买到很不错能遮风挡雨的代步车。奇瑞QQ3指导价3。7
一瓶农夫山泉多少毫升(农夫山泉380ml多少钱一箱)中国质量新闻网讯近日,江苏省仪征市市场监督管理局公示2021年5月份食品安全监督抽样检验结果。2021年5月份共抽检各类食品273批次,其中抽检28批次饮料,均合格。仪征市市场监督
雪花啤酒多少钱一瓶(雪花啤酒24瓶一箱的多少钱)近日,啤酒领域的扛把子华润雪花推出高端系列啤酒醴(l),定价999元盒(一盒2瓶)。也就是说单瓶啤酒售价高达500元,这在网上引发了广泛热议。一瓶500元的雪花啤酒是智商税吗?如何
泸州老窖怎么样(泸州老窖工作怎么样)红星资本局今天从一位接近泸州老窖集团的人士处获悉,泸州老窖(000568。SZ)旗下销售公司,最近已开启高层大调整兼任泸州老窖销售公司总经理六年之久林峰卸任。同时,张彪董虎杰张良三
泸州老窖特曲怎么样(泸州老窖特曲知乎)千万不能以貌取酒!现在我们常见的茅台洋河汾酒等名酒,都是从光瓶发展过来的。过硬的从来不是外表,而是酒的品质。能在优胜劣汰的市场中存活下来,品质决定一切,和现在舍本求利的商家截然不同
泸州老窖多少(泸州老窖系列价格)中国网财经10月21日讯(记者刘天)10月17日,泸州老窖发布次高端新品泸州老窖1952。泸州老窖股份有限公司党委书记董事长刘淼表示,泸州老窖1952将肩负名酒品质品牌三大价值,定
汾酒股份(山西汾酒股票能涨到多少钱)汾酒股份(山西汾酒股票能涨到多少钱)2021年4月26日晚,山西汾酒发布公司2021年第一季度报告,一季报显示,2021年第一季度公司实现营业收入73。32亿元,同比增长77。03
汾酒怎么样(汾酒20年怎么样)杏花村汾酒山西省是国内最大的清香型白酒生产基地,其省内的国家级名酒和国家级优质酒均为清香型。不管你喜欢喝什么酒,到了山西还是要品尝一下当地的清香酒。山西最有名气的酒莫过于杏花村汾酒
黑方多少钱一瓶(威士忌品牌排行前十)曾经看过一个酒吧很有意思的广告它在门口放了一块黑板上面写着两行字开心?来一杯庆祝一下不开心?来一杯开心一下生活不就是这样吗开心过一天不开心过一天今朝有酒今朝醉的意思大概就是告诉我们
贵州平坝(贵州平坝樱花旅游攻略)贵州平坝(贵州平坝樱花旅游攻略)开栏寄语2021年,我们将迎来中国共产党成立100周年。为此,安顺市平坝区融媒体中心将特别推出光辉百年党史天天读栏目。本栏目将通过历史文献,翔实记录
阳逻是哪里(阳逻离武汉市区多远)阳逻的行政隶属阳逻是湖北省武汉市新洲区下辖地区,位于武汉市东部,是武汉的东大门。作为市区共建的重点省级开发区,阳逻在武汉市推进武汉城市圈建设及建设两型社会综合改革试验区进程中承担着
阜阳是哪个省的(阜阳什么时候从河南划出去的)1979年2月27日经省委批准,阜阳地区革委会改称为阜阳行政公署,市县革委会改为市县人民政府。3月1日至7月阜阳地委及各县委召开会议,学习贯彻中央十一届三中全会公报及中央(1979
信阳属于哪个市(信阳离商丘市有多远)大家在地理课上都学过,秦岭淮河一线是我国东部的南北地理分界线。这是一条神奇的分界线,与我国年降水800mm等降水量线一月份平均气温零度的等温线湿润地区和半湿润地区的分界线亚热带和暖
连云港是哪个省(江苏连云港市,到底属于北方还是南方)连云港是哪个省(江苏连云港市,到底属于北方还是南方)江苏连云港市,到底属于北方还是南方?江苏属于南方省份,除了徐州全部,宿迁和连云港部分,其绝大部分应该是南方地区。连云港市相对北方
福建属于哪个省(福建省还是市?)很久很久以前,网络上流传了一句非常火的流行语广东人吃福建人。这个诙谐的梗流传出来后,没多久就火遍了全国,广东人和福建人都出名了。广东人出名是因为他们什么都吃,福建人出名是因为他是h
昆山市属于哪个省(玉山镇属于哪个省哪个市)近日,中央农办农业农村部中央宣传部民政部司法部国家乡村振兴局等6部委共同认定了第二批全国乡村治理示范乡镇示范村,江苏省共6个乡镇60个村入选。昆山市玉山镇成为苏州市唯一入选的乡镇,
昆山属于哪个省(江苏最发达是昆山吗)强县的综合实力是一方面,而辐射力影响力吸引力则是另一方面。客观而言,综合实力并不一定与各类实力相挂钩,但基本也趋于一致。特例当然也有,但不用偷换概念去深究,比如浙江的义乌,其吸引力
昆山市是哪个省的(江苏省昆山地图全图)近期,根据新版的全国百强县排名,江苏省苏州市昆山市名列百强县之首。作为一个县级市,昆山市的GDP已经达到3800多亿元,已经高出长三角地区的很多地级市。在长三角地区的26个地级市(
昆山市哪个市(昆山市领导)澎湃新闻记者袁杰素有最强县级市之称的昆山,迎来了新任主要领导。据昆山市委宣传部公号昆山发布9月2日消息,当天下午,昆山市召开全市领导干部会议。江苏省委批准周伟同志任昆山市委书记昆山
江苏昆山属于哪个市(昆山人不承认自己是苏州人)因为工作的原因,我住在了苏州和上海交接的昆山花桥,一个开车到上海市区和苏州市区都只需要一个多小时的神奇地方。这里居住的人口也很有趣有昆山本地人外地在昆山工作和定居的人有从上海来买房