多线程的原理(什么是单线程下载,什么是多线程下载,麻烦回答一下,谢谢)

本文目录
什么是单线程下载,什么是多线程下载,麻烦回答一下,谢谢
多线程下载的原理是这样的:通常服务器同时与多个用户连接,用户之间共享带宽。如果N个用户的优先级都相同,那么每个用户连接到该服务器上的实际带宽就是服务器带宽的N分之一。可以想象,如果用户数目较多,则每个用户只能占有可怜的一点带宽,下载将会是个漫长的过程。
如果你通过多个线程同时与服务器连接,那么你就可以榨取到较高的带宽了。例如原来有10个用户都通过单一线程与服务器相连,服务器的总带宽假设为56Kbps,则每个用户(每个线程)分到的带宽是5.6Kbps,即0.7K字节/秒。如果你同时打开两个线程与服务器连接,那么共有11个线程与服务器连接,而你获得的带宽将是56/11*2=10.2Kbps,约1.27K字节/秒,将近原来的两倍。你同时打开的线程越多,你所获取的带宽就越大(原来是这样,以后每次我都通过1K个线程连接:P)。当然,这种情况下占用的机器资源也越多。有些号称“疯狂下载”的下载工具甚至可以同时打开100个线程连接服务器。
多线程抢购软件的原理是什么呀高手讲讲呗
就是程序中开启多个线程,每个线程都运行一个抢购任务。这样,同一时间可以有多个抢购任务同时在运行,提高了抢购的成功率。
请问在java中线程的作用和工作原理
线程(thread),有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。 线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
超线程的主要工作原理
所谓超线程技术就是利用特殊的硬件指令,把多线程处理器内部的两个逻辑内核模拟成两个物理芯片,从而使单个处理器就能“享用”线程级的并行计算的处理器技术。多线程技术可以在支持多线程的操作系统和软件上,有效的增强处理器在多任务、多线程处理上的处理能力。
超线程技术可以使操作系统或者应用软件的多个线程,同时运行于一个超线程处理器上,其内部的两个逻辑处理器共享一组处理器执行单元,并行完成加、乘、负载等操作。这样做可以使得处理器的处理能力提高30%,因为在同一时间里,应用程序可以充分使用芯片的各个运算单元。
对于单线程芯片来说,虽然也可以每秒钟处理成千上万条指令,但是在某一时刻,其只能够对一条指令(单个线程)进行处理,结果必然使处理器内部的其它处理单元闲置。而“超线程”技术则可以使处理器在某一时刻,同步并行处理更多指令和数据(多个线程)。可以这样说,超线程是一种可以将CPU内部暂时闲置处理资源充分“调动”起来的技术。
超线程是如何工作的
在处理多个线程的过程中,多线程处理器内部的每个逻辑处理器均可以单独对中断做出响应,当第一个逻辑处理器跟踪一个软件线程时,第二个逻辑处理器也开始对另外一个软件线程进行跟踪和处理了。
另外,为了避免CPU处理资源冲突,负责处理第二个线程的那个逻辑处理器,其使用的是仅是运行第一个线程时被暂时闲置的处理单元。例如:当一个逻辑处理器在执行浮点运算(使用处理器的浮点运算单元)时,另一个逻辑处理器可以执行加法运算(使用处理器的整数运算单元)。这样做,无疑大大提高了处理器内部处理单元的利用率和相应的数据、指令处吞吐能力。
实现超线程的五大前提条件
(1)需要CPU支持
目前正式支持超线程技术的CPU有Pentium4 3.06GHz 、2.40C、2.60C、2.80C 、3.0GHz、3.2GHz以及Prescott处理器,还有部分型号的Xeon。
(2)需要主板芯片组支持
正式支持超线程技术的主板芯片组的主要型号包括Intel的875P,E7205,850E,865PE/G/P,845PE/GE/GV,845G(B-stepping),845E。875P,E7205,865PE/G/P,845PE/GE/GV芯片组均可正常支持超线程技术的使用,而早前的845E以及850E芯片组只要升级BIOS就可以解决支持的问题。SIS方面有SiS645DX(B版)、SiS648(B版)、SIS655、SIS658、SIS648FX。VIA方面有P4X400A、P4X600、P4X800。
(3)需要主板BIOS支持
主板厂商必须在BIOS中支持超线程才行。
(4)需要操作系统支持
目前微软的操作系统中只有Windows XP专业版及后续版本支持此功能,而在Windows2000上实现对超线程支持的计划已经取消了。
(5)需要应用软件支持
一般来说,只要能够支持多处理器的软件均可支持超线程技术,但是实际上这样的软件并不多,而且偏向于图形、视频处理等专业软件方面,游戏软件极少有支持的。应用软件有Office 2000、Office XP等。另外Linux kernel 2.4.x以后的版本也支持超线程技术。
文章引用自:

更多文章:
wordpress和自己写(开发企业网站 是用现成的开源框架(如wordpress等)还是自己独立写 哪种比较好一些)
2025年12月25日 14:00
java代码提示(用myeclipse,在jsp中写java代码,需要导包时不提示,必须手动导包,怎样才能让它提示并且自动导包)
2026年4月9日 13:15
怎样安装tomcat服务(如何安装Apache Tomcat并使用Tomcat发布网站)
2025年12月21日 23:30
谁有点卡回收寄售平台的源码最好免费的?虚幻源码卡在加载页面中
2026年7月20日 05:00
函数指针类型别名(typedef 函数指针 比如typedef char*(*callback)(char*, int);)
2025年6月5日 09:00
css下载文件(下载网页时,如何将css文件中内容全部下载下来)
2026年7月25日 07:00
css给按钮加箭头(CSS实现带箭头方框怎么控制箭头位置!)
2026年1月1日 04:30
sql怎么读取excel更新(SQL如何用EXCEL导入一个临时表的相关字段,然后用临时表更新原有的表数据的字段内容)
2026年4月25日 09:30
require词根(require acquire enquire 这三个单词怎么区别,有共同的词根么)
2025年7月27日 09:00
wallpaper怎么设置鼠标特效(wallpaper控制鼠标灯光)
2026年5月6日 09:45















