thread_activax_demo
DEMO 

所属分类:进程与线程
开发工具:Visual Basic
文件大小:14KB
下载次数:3
上传日期:2014-07-18 13:33:47
上 传 者wwxjsoft
说明:  单元内线程,使用activax实现多线程的列子
(Unit within the thread, the use of ActivaX multi-threaded example)

文件列表:
Bas\ModMain.bas (1482, 2009-07-04)
Cls\cMT.cls (999, 2009-07-04)
Cls\cPub.cls (388, 2009-07-04)
Frm\frmMain.frm (6174, 2009-07-04)
Frm\frmMT.frm (1350, 2009-07-04)
MT.vbp (1040, 2009-07-04)
MT.vbw (164, 2009-07-04)
TestMT.exe (25600, 2009-07-04)
Bas (0, 2009-07-04)
Cls (0, 2009-07-04)
Frm (0, 2009-07-04)

VB6里面使用多线程提高穷举速度 刚刚几个我论坛里的小同学在群里讨论已知位数密码穷举提速的方案,我也参与了一下. 我想了想,最简单的提速,就是真正的并行执行,即物理多线程,这需要至少两个CPU的硬件支持. 而我正好是双核CPU,于是就做了这个简单的例子. 程序要解决的一个假设题是从1开始,一个一个地跑到40000000(4千万),如何提高速度. 我的做法是,简单地将目标拆分为两部分,分别扔给两个线程去执行,这样速度当然就是一倍啦! 实际测试结果也确实是这样,单线程约8秒,双线程约16秒.而将代码放到虚拟机里测试的结果,却是双线程慢于单线程(18.X秒与17.X秒,虚拟机中是单核).看来,在只能执行一个物理线程的硬件系统中,这种穷举使用多线程,在CPU进行逻辑线程调度时消耗的时间那还真的不少. 由于手里没有支持超线程的CPU,所以没办法测试超线程功能是啥情况.不过从超线程原理来看,貌似只是把线程的调度从软件上改成了硬件上,本质上还是只能同时执行一个物理线程,估计也差不多....有支持超线程CPU的朋友帮忙测试一下吧:) 扯点题外话,其实物理并行处理,我觉得并不是CPU的强项....去年在软件开发大会上看到了NVIDIA的CUDA技术演示,那才叫牛B,由于GPU本身物理结构上的优势,它可以轻松拥有上百个物理线程并行处理的能力....可惜NVIDIA送的那套光碟放在陈辉家里忘带走了,还有CSDN的那个包包...呃,对,那个包包已经是莫依的了... 不过呢......我的本本是INTEL的GMA3100.....与CUDA是无缘的了- -! BY 嗷嗷叫的老马 紫水晶工作室 http://www.m5home.com/ 2009-07-04

近期下载者

相关文件


收藏者