多线程与单线程的区别和单线程有什么本质区别

多线程下载就是几个单线程同时下载,要快很多,像网际快车一般都是5个
其他答案(共2个回答)
允许的情况下,多线程下得当然快咯
迅雷和网际快车就是多线程下载工具,只要下载时修改一下属性,就是你说的分块下载。不过因为你的网速比较慢所以我还是建议你用单线程下载。
支持,从现在能找得到最老的版本开始就支持。运行一个多线程的模块不需要特殊的硬件支持。
建议你看看这篇相关文章
进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的区别在于:
简而言之,一个程序至少有一个进程,一个进程...
现在一般的浏览器都能下载的,你使用浏览器下载,找到正在下载的文件,右键点击,就能复制下载链接!在到迅雷里面新建一个下载就可以了!
基本上所有的大型程序和游戏都是多线程的,多线程已经是一种很普遍的编程技术了。
对于现在的大多数游戏来说,瓶颈仍然是图形系统,也就是显卡。双核的提升作用有限。
答: 微信人工投票哪家好,还是找金榜团队就对了,金榜投票都是手工团队操作的,微信投漂增长方法,人工速度快,每票都截图,不同地址不同手机投漂,和自己拉漂一样。人多力量大...
答: 它在电缆电视的基础上,将分配网络的主干部分改为光缆,在各个服务节点处完成光电转换,再由同轴电缆将传输信号送到用户家里,可有效地实现Internet访问、电视点播...
答: 七十年代的计算机网络
X.25 分组交换网:各国的电信部门建设运行
各种专用的网络体系结构:SNA,DNA
Internet 的前身ARPANET进行实验运行
大家还关注
确定举报此问题
举报原因(必选):
广告或垃圾信息
激进时政或意识形态话题
不雅词句或人身攻击
侵犯他人隐私
其它违法和不良信息
报告,这不是个问题
报告原因(必选):
这不是个问题
这个问题分类似乎错了
这个不是我熟悉的地区他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)单线程和多线程的区别?
本回答由提问者推荐
var sogou_ad_id=731547;
var sogou_ad_height=160;
var sogou_ad_width=690;2009年7月 总版技术专家分月排行榜第二2009年3月 总版技术专家分月排行榜第二2009年1月 总版技术专家分月排行榜第二2005年7月 总版技术专家分月排行榜第二2005年5月 总版技术专家分月排行榜第二2005年3月 总版技术专家分月排行榜第二
优秀小版主2015年8月优秀小版主2015年9月优秀小版主2015年5月优秀小版主2015年2月论坛优秀版主
2009年7月 总版技术专家分月排行榜第二2009年3月 总版技术专家分月排行榜第二2009年1月 总版技术专家分月排行榜第二2005年7月 总版技术专家分月排行榜第二2005年5月 总版技术专家分月排行榜第二2005年3月 总版技术专家分月排行榜第二
优秀小版主2015年8月优秀小版主2015年9月优秀小版主2015年5月优秀小版主2015年2月论坛优秀版主
2009年 总版技术专家分年内排行榜第四
2009年2月 总版技术专家分月排行榜第一2009年1月 总版技术专家分月排行榜第一2008年11月 总版技术专家分月排行榜第一2008年10月 总版技术专家分月排行榜第一2008年9月 总版技术专家分月排行榜第一2008年8月 总版技术专家分月排行榜第一2008年7月 总版技术专家分月排行榜第一2008年6月 总版技术专家分月排行榜第一2008年5月 总版技术专家分月排行榜第一2008年4月 总版技术专家分月排行榜第一
本帖子已过去太久远了,不再提供回复功能。多线程 与 单线程 的区别 - I_am - 博客园
单线程(Thread)与多线程的区别
&&&&&&&(一)首先了解一下cpu:
&&&&&& 随着主频(cpu内核工作时钟频率,表示在CPU内数字脉冲信号震荡的速度,等于外频(系统基本时间)乘倍频)的不断攀升,X86构架的硬件逐渐成为瓶颈,最高为4G,事实上目前3.6G主频的CPU已经接近顶峰。
&&&&&& 多线程编程的目的,就是"最大限度地利用CPU资源",当某一线程的处理不需要占用 CPU 而只和 I/O , OEM BIOS 等资源打交道时,让需要占用 CPU 资源的其它线程有机会获得CPU资源。
&&&&&& 每个程序执行时都会产生一个进程,而每一个进程至少要有一个主线程。
&&&&&&&这个线程其实是进程执行的一条线索,除了主线程外你还可以给进程增加其它的线程,也即增加其它的执行线索,由此在某种程度上可以看成是给一个应用程序增加了多任务功能。
&&&&&&&当程序运行后,您可以根据各种条件挂起或运行这些线程,尤其在多CPU的环境中,这些线程是并发运行的。多线程就是在一个进程内有多个线程。从而使一个应用程序有了多任务的功能。
&&&&&& 多进程技术也可以实现这一点,但是创建进程的高消耗(每个进程都有独立的数据和代码空间),进程之间通信的不方便(消息机制),进程切换的时间太长,这些导致了多线程的提出,对于单CPU来说(没有开启超线程),在同一时间只能执行一个线程,所以如果想实现多任务,那么就只能每个进程或线程获得一个时间片,在某个时间片内,只能一个线程执行,然后按照某种策略换其他线程执行。由于时间片很短,这样给用户的感觉是同时有好多线程在执行。但是线程切换是有代价的,如果出现时间较长,就出现程序假死状态,出现程序无响应等症状。
&&&&& 因此如果采用多进程,那么就需要将线程所隶属的该进程所需要的内存进行切换,这时间代价是很多的。而线程切换代价就很少,线程是可以共享内存的。所以采用多线程在切换上花费的比多进程少得多。
&&&&& 但是,线程切换还是需要时间消耗的,所以采用一个拥有两个线程的进程执行所需要的时间,要比一个线程的进程执行两次任务所需要的时间要多一些。
&&&&& 即采用多线程不会提高程序的执行速度,反而会降低速度,但是对于用户来说,可以减少用户的响应时间。
&&&&&上述结果只是针对单 CPU,如果对于多 CPU 或者 CPU 采用超线程技术的话,采用多线程技术还是会提高程序的执行速度的。因为单线程只会映射到一个CPU上,而多线程会映射到多个CPU上,超线程技术本质是多线程硬件化,所以也会加快程序的执行速度。
&&&& 以上文档引用&douglax&的观点:http://blog.csdn.net/douglax/article/details/1532258
&&&& 下面这个简单的应用实例是一个多线程过程private void button1_Click(object sender,Eventargs e){
Thread t=new Thread(new ThreadStart(ThreadProc));&&& t.Start();&& Thread.Sleep(0);&& t.Join();}public static void ThreadProc(){&&&&&&&&& string threa="在这里获取UDP传递的流,其类型为byte[]";&&&&&&&& Thread.Sleep(0);}
1)程序的窗口运行在主线程上;2) Thread t=new Thread(new ThreadStart(ThreadProc)) 又启动了另外一个线程

我要回帖

更多关于 多线程与单线程的区别 的文章

 

随机推荐