<thead id="tzpj7"></thead>

        <sub id="tzpj7"></sub>
        <address id="tzpj7"></address>

            <sub id="tzpj7"></sub>

                多线程和多进程

                1,解释:

                单线程是只有一条公路而且是单车道,只能同时行驶一辆汽车;

                多线程是只有一条公路,但是是多车道,可以同时行驶多辆汽车;

                多进程是有很多条公路,每条公路可能是单车道也可能是多车道,同样可以同时行驶多辆汽车。

                2.如何选择:

                cpu密集型代码(各种循环处理, 计算等等);使用多进程

                IO密集型代码(文件处理,网络爬虫等): 使用多线程

                3.CPU密集型(CPU-bound)

                CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。

                在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算圆周率至小数点一千位以下的程序,在执行的过程当中绝大部份时间用在三角函数和开根号的计算,便是属于CPU bound的程序。

                CPU bound的程序一般而言CPU占用率相当高。这可能是因为任务本身不太需要访问I/O设备,也可能是因为程序是多线程实现因此屏蔽掉了等待I/O的时间。

                4.IO密集型(I/O bound)

                IO密集型指的是系统的CPU性能相对硬盘、内存要好很多,此时,系统运作,大部分的状况是CPU在等I/O (硬盘/内存) 的读/写操作,此时CPU Loading并不高。

                I/O bound的程序一般在达到性能极限时,CPU占用率仍然较低。这可能是因为任务本身需要大量I/O操作,而pipeline做得不是很好,没有充分利用处理器能力。

                5.CPU密集型 vs IO密集型

                我们可以把任务分为计算密集型和IO密集型。

                计算密集型任务的特点是要进行大量的计算,消耗CPU资源,比如计算圆周率、对视频进行高清解码等等,全靠CPU的运算能力。这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数。

                计算密集型任务由于主要消耗CPU资源,因此,代码运行效率至关重要。Python这样的脚本语言运行效率很低,完全不适合计算密集型任务。对于计算密集型任务,最好用C语言编写。

                第二种任务的类型是IO密集型,涉及到网络、磁盘IO的任务都是IO密集型任务,这类任务的特点是CPU消耗很少,任务的大部分时间都在等待IO操作完成(因为IO的速度远远低于CPU和内存的速度)。对于IO密集型任务,任务越多,CPU效率越高,但也有一个限度。常见的大部分任务都是IO密集型任务,比如Web应用。

                IO密集型任务执行期间,99%的时间都花在IO上,花在CPU上的时间很少,因此,用运行速度极快的C语言替换用Python这样运行速度极低的脚本语言,完全无法提升运行效率。对于IO密集型任务,最合适的语言就是开发效率最高(代码量最少)的语言,脚本语言是首选,C语言最差。

                 作者:Java技术栈
                链接:https://www.jianshu.com/p/1f5195dcc75b来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

                相关文章
                相关标签/搜索
                管家婆中特王中王开+奖结果出 桐庐县| 额尔古纳市| 郯城县| 新龙县| 平和县| 邵东县| 岗巴县| 义乌市| 宜川县| 廉江市| 竹溪县| 明光市| 甘南县| 电白县| 肃北| 昭觉县| 泌阳县| 神池县| 怀集县| 九寨沟县| 宕昌县| 定陶县| 六枝特区| 固原市| 临猗县| 历史| 桐柏县| 五华县| 土默特左旗| 潼关县| 桐庐县| 洪洞县| 阜南县| 上饶县| 汕头市| 梁平县| 天台县| 丽水市| 梁平县| 通辽市| 连平县| 绍兴县| 南川市| 保靖县| 西华县| 永胜县| 万山特区| 丽水市| 罗甸县| 新民市| 六枝特区| 延安市| 姚安县| 浦城县| 楚雄市| 财经| 马山县| 广州市| 宁阳县| 东山县| 开鲁县| 藁城市| 长阳| 左贡县| 石台县| 洛隆县| 铁力市| 台东市| 万宁市| 阳西县| 冷水江市| 深州市| 锡林郭勒盟| 平和县| 唐河县| 鄂尔多斯市| 台中市| 云阳县| 苍梧县| 阳高县| 周口市| 波密县| 保亭| 富裕县| 铅山县| 怀仁县| 文化| 弥勒县| 荣昌县| 余姚市| 德昌县| 陈巴尔虎旗| 达州市| 香港| 威宁| 孟州市| 荆门市| 乐陵市| 张北县| 南陵县| 宣化县| 临夏县| 株洲市| 稷山县| 右玉县| 乌什县| 临澧县| 金平| 清镇市| 金川县| 娄底市| 上思县| 水富县| 阿拉善右旗| 山东省| 寿宁县| 南皮县| 盖州市| 佛坪县| 友谊县| 保定市| 简阳市| 澄城县| 易门县| 巴楚县| 河北省| 余江县| 临夏市| 渭南市| 屏东县| 潜江市| 五峰| 呈贡县| 丹江口市| 连云港市| 易门县| 绥德县| 琼结县| 娄烦县| 沁源县| 略阳县| 合山市| 铁岭县| 怀来县| 蓝田县| 通化县| 泌阳县| 南开区| 东至县| 虞城县| 梁平县| 黔西县| 康乐县| 北安市| 石景山区| 罗源县| 崇信县| 阳山县| 石楼县| 张家界市| 临桂县| 永兴县| 石景山区| 宜兴市| 尖扎县| 黄大仙区| 江阴市| 郯城县| 云和县| 新疆| 元氏县| 贵州省| 通州市| 临澧县| 常熟市| 水富县| 都匀市| 淳化县| 大同市| 怀安县| 饶阳县| 盐池县| 雷波县| 旌德县| 高阳县| 仲巴县| 高青县| 巨鹿县| 宕昌县| 常德市| 禄劝| 聊城市| 泰宁县| 太康县| 湘潭县| 洛扎县| 从化市| 静海县| 金沙县| 博罗县| 大连市| 雷州市| 乌苏市| 赞皇县| 崇仁县| 大悟县| 九江市| 奈曼旗| 阿拉善左旗| 奉新县| 新余市| 图们市| 霞浦县| 油尖旺区| 颍上县| 仁布县| 卓资县| 黄石市| 深州市| 北安市| 武冈市| 江津市| 马山县| 镇康县| 焦作市| 民县| 民权县| 大厂| 南和县| 隆安县| 临泽县| 哈尔滨市| 正蓝旗| 肇源县| 壶关县| 闻喜县| 七台河市| 思南县| 兴化市| 比如县| 岑溪市| 托克逊县| 手机| 海淀区| 栖霞市| 西昌市| 容城县| 百色市| 梓潼县| 祁连县| 山阴县| 青浦区| 灵璧县| 获嘉县| 武山县| 微山县| 健康| 延川县| 汉寿县| 丰城市| 施甸县| 施甸县| 德令哈市| 米脂县| 张家口市| 泸定县| 汝州市| 姜堰市| 七台河市| 内黄县| 哈尔滨市| 阳谷县| 临夏市| 德兴市| 普安县| 吉木乃县| 紫阳县| 屯留县| 长岛县| 汕尾市| 綦江县| 威信县| 噶尔县| 紫金县| 成武县| 平顺县| 始兴县| 介休市| 禹州市| 黎平县| 土默特右旗| 桓仁| 儋州市| 永胜县| 理塘县| 上高县| 四子王旗| 轮台县| 洛宁县| 锦州市| 同心县| 页游| 滦平县| 山东省| 谢通门县| 孟村| 永福县| 宣威市| 乌鲁木齐市| 郑州市| 平南县| 仁布县| 唐山市| 杭州市| 桐城市| 荔波县| 台安县| 金山区| 大厂| 中山市| 怀安县| 定远县| 长泰县| 五莲县| 洪泽县| 虹口区| 无极县| 兰州市| 宁陕县| 天全县| 开原市| 永川市| 金山区| 古蔺县| 巴彦县| 边坝县| 承德县| 凤台县| 鹰潭市| 西平县| 嘉鱼县| 赣州市| 黎川县| 永顺县| 马龙县| 平顺县| 永清县| 永仁县| 商都县| 凌源市| 凤阳县| 商洛市| 无极县| 卓资县| 图们市| 浦北县| 凭祥市| 临海市| 湘乡市| 抚宁县| 马边| 威信县| 城口县| 五寨县| 泾源县| 旅游| 安徽省| 札达县| 广东省| 义马市| 寻乌县| 商南县| 宁蒗| 小金县| 娄烦县| 灯塔市| 多伦县| 禄劝| 永济市| 双江| 长岛县| 兰西县| 澳门| 安仁县| 广灵县| 正安县| 天峻县| 页游| 波密县| 洛川县| 泽库县| 麦盖提县| 陇川县| 榕江县| 汉川市| 赤城县| 永德县| 龙游县| 青川县| 如东县| 黄骅市| 义乌市| 康马县| 和硕县| 德钦县| 金沙县| 萨迦县| 精河县| 平乡县| 会宁县| 武功县| 新安县| 南安市| 台北县| 嘉善县| 八宿县| 固阳县| 天台县| 望城县| 天全县| 开阳县| 大理市| 敖汉旗| 如东县| 淮北市| 淳安县| 鄢陵县| 福鼎市| 孟州市| 铜山县| 元江| 广平县| 蕉岭县| 广宗县| 海丰县| 琼海市| 怀仁县| 潜山县| 金寨县| 通城县| 金门县| 安徽省| 松桃| 灌云县| 南涧| 偏关县| 东乌珠穆沁旗| 邢台县| 田林县| 宣武区| 灵川县| 沙湾县| 辽宁省| 焦作市| 宜君县| 寻甸| 米易县| 洛隆县| 井冈山市| 瑞安市| 乌拉特前旗| 顺平县| 盐源县| 潞城市| 新和县| 贵溪市| 丰城市| 巴林右旗| 上林县| 湾仔区| 扎鲁特旗| 如皋市| 鹤壁市| 博兴县| 谷城县| 洞口县| 钟祥市| 齐齐哈尔市| 灌云县| 靖远县| 蒙山县| 芦溪县| 中阳县| 资兴市| 尼勒克县| 芮城县| 上犹县| 新丰县| 中山市| 郓城县| 南澳县| 揭西县| 即墨市| 昆山市| 清苑县| 南宫市| 遵义县| 新余市| 历史| 新泰市| 喀喇沁旗| 夏津县| 金昌市| 合肥市| 盐源县| 奇台县| 定结县| 黄梅县| 北海市| 茂名市| 长岛县| 新安县| 鹰潭市| 大埔区| 洛阳市| 丰台区| 旺苍县| 依兰县| 兴文县| 黄骅市| 罗江县| 灵寿县| 安阳县| 德格县| 乌鲁木齐县| 海城市| 巨鹿县| 东乡| 华容县| 淄博市| 黑龙江省| 酒泉市| 佛冈县| 兴隆县| 泸溪县| 多伦县| 滕州市| 石林| 搜索| 宣武区| 嵊泗县| 张家港市| 福鼎市| 河间市| 威宁| 河池市| 淮北市| 手机| 松溪县| 巴里| 元朗区| 平阴县| 屯昌县| 泽州县| 凌源市| 若尔盖县| 呼图壁县| 龙江县| 山东省| 竹山县| 无棣县| 新干县| 固安县| 兖州市| 闵行区| 宜君县| 锡林浩特市| 靖远县| 额敏县| 炎陵县| 通海县| 高雄市| 平泉县| 杭州市| 温州市| 双城市| 鄂托克前旗| 上饶县| 缙云县| 西丰县| 凤庆县| 商河县| 山阴县| 武胜县| 阳泉市| 长沙县| 贵德县| 宽城| 葵青区| 鄂托克旗| 怀仁县| 抚顺县| 太和县| 驻马店市| 来安县| 多伦县| 疏勒县| 泸溪县| 巢湖市| 宁武县| 琼结县| 青阳县| 久治县| 穆棱市| 江永县| 奇台县| 屯留县| 东乌珠穆沁旗| 樟树市| 西丰县| 张北县| 盐山县| 都安| 阿克苏市| 资溪县| http://m.jx1870countv.fun http://m.jx1870browsev.fun http://wap.jx1870chancev.fun http://3g.jx1870contactv.fun http://m.jx1870creazv.fun http://wap.jx1870cornerv.fun http://wap.jx1870ezptyv.fun http://3g.jx1870diev.fun http://wap.jx1870createv.fun http://3g.jx1870cookv.fun http://www.jx1870discoverv.fun http://3g.jx1870centrev.fun http://wap.jx1870becozev.fun http://m.jx1870centerv.fun http://3g.jx1870arrayv.fun http://3g.jx1870djv.fun http://3g.jx1870considerv.fun http://wap.jx1870churchv.fun