- 浏览: 374663 次
- 性别:
- 来自: 四川
文章分类
- 全部博客 (247)
- 数据库以及sql (11)
- java (48)
- 爬虫学习 (20)
- java编程 (28)
- python编程以及安装和配置 (27)
- oracle数据库 (32)
- mongodb基本操作 (4)
- linux学习 (7)
- easyUI (2)
- nodeJs (8)
- python学习 (16)
- 其他 (13)
- hadoop (1)
- svn (1)
- 汉字 (1)
- windows (2)
- jsp (5)
- fiddler (1)
- ETL (1)
- teamviewer (1)
- maven (4)
- GIT (2)
- datagrip (1)
- ocr (1)
- redis (3)
- mysql (3)
- linux (1)
- 数据服务 (0)
最新评论
是否采用多任务的第二个考虑是任务的类型。我们可以把任务分为计算密集型和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语言最差。
计算密集型任务的特点是要进行大量的计算,消耗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多态
2018-11-14 13:43 691Java多态 例1.1+1=2 例2."1&quo ... -
经纬度转换
2018-09-25 13:57 0package com.teamdev.jxbrowser.c ... -
java连接池技术
2018-09-04 14:26 380转:https://www.cnblogs.com/xdp-g ... -
java 提取url字符串中的域名
2018-08-30 15:24 7380package com.teamdev.jxbrowser.c ... -
java多线程中锁(lock)、wait、notify()的使用
2018-07-13 11:31 5742package com.kai.多线程间的通信; impor ... -
java多线程间的通信实例
2018-07-13 11:00 1424----线程间的通信 public class ListAd ... -
volatile关键字
2018-07-12 11:20 646volatile:使变量在多个线程间可见 public c ... -
java根据百度url获取真正的网页地址
2018-07-09 11:26 1072/** * 根据百度url,获取原本url * @th ... -
java中的base64字符流与图片的相互转换
2018-06-29 13:27 1263//base64字符串转化成图片 public sta ... -
java去除图片水印的解决办法
2018-06-28 10:54 3350原文地址:http://www.oicqzone.com/pc ... -
java中的中文字符转URLEncode
2018-06-26 11:26 796String urlTypeName =java.net.UR ... -
java下载图片到本地实例
2018-06-25 15:34 1355public static void main(String[ ... -
Myeclipse中如何更改jsp默认的打开方式
2018-05-04 17:44 6551.打开myeclipse 2.点击上方的 window-&g ... -
java三大范式
2018-05-02 09:50 756参考地址:https://www.cnblogs.com/ja ... -
请求中设置代理IP
2018-04-18 16:24 970(不能直接JVM设置代理 System.getProperti ... -
java获取当前时间的时间戳
2018-04-08 09:25 1504package com.teamdev.jxbrowser.c ... -
java四种线程池实例 (kaigege)
2018-03-28 11:03 713Java通过Executors提供四种线程池: 1.newCa ... -
java获取IP地址(windos,linux)皆可
2018-03-28 09:44 807package com.teamdev.jxbrowser.c ... -
post 请求
2018-02-05 16:32 528public static void trustEveryo ... -
java robot控制鼠标和键盘(笔记本中打印 i love you)(滑动)
2018-01-25 16:57 2097package robot_java; import jav ...
相关推荐
所谓IO密集型应用,是指那些对磁盘读写操作依赖较大的程序,如数据库管理、文件服务器、数据仓库等。网络密集型应用则指的是那些对网络带宽和响应时间敏感的应用,如在线游戏服务器、大规模分布式系统等。这两种类型...
这种设计大大节省了空间,减少了布线,并降低了能源消耗,适合需要大量桌面计算能力的环境,如呼叫中心或图形密集型工作站点。 HP Blade PC利用HP的刀片基础设施,其中包含HP Racks,这是一种专门设计用于容纳刀片...
Python 界有条不成文的准则: 计算密集型任务适合多进程,IO 密集型任务适合多线程。本篇来作个比较。 通常来说多线程相对于多进程有优势,因为创建一个进程开销比较大,然而因为在 python 中有 GIL 这把大锁的存在...
它支持多种数据传输方式,并能够提供高带宽和低延迟的特性,非常适合于通信、存储和计算密集型应用。 #### 三、RapidIO 4.0协议特点 - **高带宽**:RapidIO 4.0协议提供了更高的数据传输速率,支持高达100 Gbps的...
**RapidIO**是一种高性能、低延迟的互连技术标准,主要用于嵌入式系统、通信系统以及计算密集型应用领域,如数字信号处理(DSP)设备、高级电信计算架构(ATCA)板卡等。RapidIO规范由RapidIO贸易协会制定并维护,该...
2. **负载均衡**:如果多台服务器可用,可以将IO密集型任务分散到不同的服务器上。 3. **缓存策略**:利用内存缓存减少磁盘访问次数。 4. **IO调度算法**:调整内核的IO调度器,选择更适合当前工作负载的调度算法。 ...
还介绍了多线程和多进程编程的技术以及相关的设计考虑因素,并探讨了计算密集型与IO密集型任务之间的区别。最后讲解了常用的集合操作方法以及多种排序算法,包括冒泡排序、选择排序、插入排序、归并排序等。 适合...
**Fusion-io 快速安装指南综合解析** Fusion-io 的 ioDrive 和 ioDriveDuo 是高性能存储解决方案,为数据中心和高...通过遵循官方指南,用户可以顺利完成 ioDrive 的安装和配置,充分发挥其在数据密集型应用中的优势。
- 其中 Ncpu 为 CPU 的核心数,加 1 的目的是为了防止在计算密集型任务中出现短暂的空闲状态,确保在某个线程因为外部因素暂时停止工作时,另一个线程能够立即接手继续执行。 - **IO 密集型任务**:Nthreads = 2 *...
线程在同一进程内共享内存,适合执行I/O密集型任务,而进程拥有独立的内存空间,更适合CPU密集型任务。了解如何使用threading和multiprocessing模块,以及GIL(全局解释器锁)对Python多线程的影响,能帮助你更好地...
前情回顾 ...计算密集型程序(cpu密集型程序):在程序执行中cpu运算较多,IO操作相对较少。消耗cpu大,运行速度快 IO分类 阻塞IO 非阻塞IO IO多路复用 阻塞IO 阻塞IO是IO的默认形态,是效率较低的
总结来说,大型数据场景中的定时任务系统优化主要包括:利用多线程并发处理,针对计算密集型和IO密集型任务采取不同的线程管理策略;采用增量更新策略处理数据变化;合理安排任务执行时间和周期以实现负载均衡;以及...
"IO密集型与计算密集型"是衡量任务特性的两个重要维度。I/O密集型任务涉及到大量的数据读写,如网络请求、磁盘读写等,其主要瓶颈在于等待I/O操作完成,而非CPU计算。计算密集型任务则需要大量的CPU运算,例如图像...
RapidIO是一种高性能串行互连技术,它最初由美国Mercury Computer Systems公司为计算密集型信号处理系统所开发,并且后来被包括Motorola在内的多家半导体公司所采纳。RapidIO技术专为点对点操作和任意拓扑结构设计,...
Linux异步I/O为开发者提供了一种强大且灵活的方式来优化I/O密集型应用程序的性能。通过理解不同I/O模型的特点和局限,开发者可以更明智地选择适合自身需求的技术方案,从而在现代计算环境中构建出更加高效、响应迅速...
RapidIO技术起源于美国Mercury Computer Systems公司的内部研发项目,旨在解决计算密集型信号处理系统的内部通信问题。随着技术的发展和市场需求的增长,RapidIO逐渐被其他公司如Motorola采纳,并最终成为了一个开放...
python多线程适合IO密集型场景,而在CPU密集型场景,并不能充分利用多核CPU,而协程本质基于线程,同样不能充分发挥多核的优势。 针对计算密集型场景需要使用多进程,python的multiprocessing与threading模块非常...
RapidIO是一种高性能、低延迟的片上系统(SoC)和板载连接技术,旨在优化数据密集型应用中的通信效率。它被设计为一种内部系统互连,主要用于本地I/O总线场景,如在单个电路板上实现设备间的高速通信。 #### 1.1 系统...