Ⅰ 线程能节省时间和开销吗
有可能会不一样,在单核机器上,多线程跟单线程执行速度差不多,有时候还如果单线程快,这是因为单核机器,同一时间只能执行一个线程,其它获得时间片的线程需要等待。当前线程时间片用完后,其它时间片的线程再执行,当前线程会重新分得一个时间片,由于时间片很小,所以好像是同时执行一样。单核多线程时,由于涉及到线程切换,需要消耗时间的,所以不一定比单线程快。而在多核情况下就不一样了,cpu有多个核心,多线程时,每个线程可能会分配到不同的cpu核心上面进行计算,这种情况下才真的是并行计算。多核心情况,多线程执行速度当然比单线程要快。就像上面说的,打印奇偶数同时在cpu两个核心上面计算,时间当然不一样了!
Ⅱ 按键精灵时间计算问题!
我不清楚你具体情况,我这里提供两个个限定时间执行代码的例子,希望对你有帮助
例子1:单线程,有误差,误差来源主要是执行代码时间长短,执行代码时间越长,误差越大,所以这种方法只适合于代码执行一次时间比较短,例如限定时间按某键(当然多几个也行),代码如下:
t1 = Plugin.Sys.GetTime()
t2 = 0
While t2 - t1 < 60000 //60000毫秒是一分钟,这里可以设定执行时间
KeyPress 65, 1 //这个操作大约50ms,所以误差是50ms内。
t2 = Plugin.Sys.GetTime()
Wend
例子2:多线程,功能开启线程,计时在主函数,这种情况不受代码执行时间影响,比较精确,代码如下:
ID = BeginThread(YourFunction())
Delay 60000 //代码执行时间,一般是小于你要执行代码的时间,否则没意义
StopThread ID
Sub YourFunction()
//这里写你要执行的代码,这段代码执行时间一般大于你要设定的时间,否则没意义
End Sub
Ⅲ js定时器的准确时间
js定时器的准确时间
这个相差是不确定的。
因为虽说1000毫秒是1秒,但是js是单线程的,又怎么会有一个线程单独来计算时间呢,那么问题来了。
js是如何定时的?
其实js的setTimeout机制是这样的,每个语句都会加入到执行的队列中,也就是挂起状态,其实是一直往执行队列里面加你写的语句上一句其他代码,或者setTimeout的回调函数里面的代码,执行完了,再次执行已经挂起的setTimeout,那么此时执行时间与电脑配置和js执行效率有关。
所以结论就是,电脑速度越快,js代码效率越高,这个延迟就越小。
但是,一定会有一定的延迟的,因为js是单线程的
Ⅳ 单线程与多线程的区别
多线程:多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行。
单线程:线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。
多线程也是程序,所以线程需要占用内存,线程越多占用内存也越多;多线程需要协调和管理,所以需要CPU时间跟踪线程;线程之间对共享资源的访问会相互影响,必须解决竞用共享资源的问题;线程太多会导致控制太复杂。
单线程在程序执行时,所走的程序路径按照连续顺序排下来,前面的必须处理好,后面的才会执行。
举例,就像ppsspp运行一样。比如需要处理一段图像解码,单线程必须处理完这一段才可以进行下一段处理,所以速度会显得有点慢。
多线程运行就是一个进程内有多个相对独立的并且实现特定的任务以竞争CPU的方式执行,在多处理机条件下宏观上是并发,实际上是分时执行,只是执行的时间片较短。例如运行ppsspp.处理一段图像数据,他可以用一个线程处理这个,而用另一个线程处理下一段数据。相对单线程而言速度会有提高。
Ⅳ 多线程,单线程速度差很多,要如何提高多线程
我认为,多线程提高效率是有前提的。
如果只是让CPU执行计算,就像你说得,现在的微机都是分时处理,单线程和多线程的效率几乎一致,甚至单线程还要快一点,关于这个我是做过测试的。
多线程提高效率的情况是,比如需要等待IO或者用户响应的情况。
举个列子,一个ping的小程序。从网址192.168.1.1到192.168.1.255,循环ping,假设每个网址都ping不通,计算机等待3秒超时。
如果使用单线程,则需要255*3秒时间。如果使用C#线程池或者4.0的并行计算,则会节约10倍左右的时间。
Ⅵ 单线程和同步 多线程和异步
线程 和 异步是两个不同的概念.
首先说线程, 线程是CUP顺序执行指令的一个调度单位.
一个线程内的指令将会被顺序执行,Ps.跳转指令也是按照时序执行的.
多线程,是指同一时刻存在多个调度单位.
异步和同步, 举个例子说明异步吧, 我要洗衣服的时候,先打开上水管,然后再去抱脏衣服,在我抱脏衣服的同时,水上好了,上水过程就相当于我打开了一个异步工作.
我们实现异步的方法基本上就是使用多线程实现的,
比如一个工作线程每秒更新显示系统时间, 而我又需要计算一个复杂的计算结果,需要耗时两秒,如果在原来的线程中执行计算方法,则无法继续正常执行更新显示系统时间的功能,因为那个代码还没执行完,无法跳转到更新时间的代码.而如果我启动另外一个线程,只需花费0.1秒,然后就可以继续执行更新显示时间的工作了,当新建的计算线程运算完毕以后,将结果返回个原线程,原线程直接将结果更新一下,就可以了. 这个过程就完成了一个典型的利用多线程进行的异步运算.
Ⅶ 电脑高手进
关于电脑进程:
现在是不是还有人对着任务管理器里面,一大堆的进程发呆?高手与低手的分别就是,高手能够很快地鉴别出有问题的进程,而低手则只能靠“排除法”一个个地试,搞不好还会系统崩溃,所以我们特意准备了这个超全的进程解释文章,以让大家更好地了解它们。
(1)[system Idle Process]
进程文件: [system process] or [system process]
进程名称: Windows内存处理系统进程
描 述: Windows页面内存管理进程,拥有0级优先。
介 绍:该进程作为单线程运行在每个处理器上,并在系统不处理其他线程的时候分派处理器的时间。它的cpu占用率越大表示可供分配的CPU资源越多,数字越小则表示CPU资源紧张。
(2)[alg.exe]
进程文件: alg or alg.exe
进程名称: 应用层网关服务
描 述: 这是一个应用层网关服务用于网络共享。
介 绍:一个网关通信插件的管理器,为 “Internet连接共享服务”和 “Internet连接防火墙服务”提供第三方协议插件的支持。
(3)[csrss.exe]
进程文件: csrss or csrss.exe
进程名称: Client/Server Runtime Server Subsystem
描 述: 客户端服务子系统,用以控制Windows图形相关子系统。
介 绍: 这个是用户模式Win32子系统的一部分。csrss代表客户/服务器运行子系统而且是一个基本的子系统必须一直运行。csrss用于维持Windows的控制,创建或者删除线程和一些16位的虚拟MS-DOS环境。
(4)[ddhelp.exe]
进程文件: ddhelp or ddhelp.exe
进程名称: DirectDraw Helper
描 述: DirectDraw Helper是DirectX这个用于图形服务的一个组成部分。
简 介:Directx 帮助程序
(5)[dllhost.exe]
进程文件: dllhost or dllhost.exe
进程名称: DCOM DLL Host进程
描 述: DCOM DLL Host进程支持基于COM对象支持DLL以运行Windows程序。
介 绍:com代理,系统附加的dll组件越多,则dllhost占用的cpu资源和内存资源就越多,而8月的“冲击波杀手”大概让大家对它比较熟悉吧。
(6)[explorer.exe]
进程文件: explorer or explorer.exe
进程名称: 程序管理
描 述: Windows Program Manager或者Windows Explorer用于控制Windows图形Shell,包括开始菜单、任务栏,桌面和文件管理。
介 绍:这是一个用户的shell,在我们看起来就像任务条,桌面等等。或者说它就是资源管理器,不相信你在运行里执行它看看。它对windows系统的稳定性还是比较重要的,而红码也就是找它的麻烦,在c和d根下创建explorer.exe。
(7)[inetinfo.exe]
进程文件: inetinfo or inetinfo.exe
进程名称: IIS Admin Service Helper
描 述: InetInfo是Microsoft Internet Infomation Services (IIS)的一部分,用于Debug调试除错。
介绍:IIS服务进程,蓝码正是利用的inetinfo.exe的缓冲区溢出漏洞。
(8)[internat.exe]
进程文件: internat or internat.exe
进程名称: Input Locales
描 述: 这个输入控制图标用于更改类似国家设置、键盘类型和日期格式。internat.exe在启动的时候开始运行。它加载由用户指定的不同的输入点。输入点是从注册表的这个位置HKEY_USERS\.DEFAULT\Keyboard Layout\Preload 加载内容的。internat.exe 加载“EN”图标进入系统的图标区,允许使用者可以很容易的转换不同的输入点。当进程停掉的时候,图标就会消失,但是输入点仍然可以通过控制面板来改变。
介 绍:它主要是用来控制输入法的,当你的任务栏没有“EN”图标,而系统有internat.exe进程,不妨结束掉该进程,在运行里执行internat命令即可。
(9)[kernel32.dll]
进程文件: kernel32 or kernel32.dll
进程名称: Windows壳进程
描 述: Windows壳进程用于管理多线程、内存和资源。
介 绍:更多内容浏览非法操作与Kernel32解读
(10)[lsass.exe]
进程文件: lsass or lsass.exe
进程名称: 本地安全权限服务
描 述: 这个本地安全权限服务控制Windows安全机制。管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序等。
介 绍:这是一个本地的安全授权服务,并且它会为使用winlogon服务的授权用户生成一个进程。这个进程是通过使用授权的包,例如默认的msgina.dll来执行的。如果授权是成功的,lsass就会产生用户的进入令牌,令牌别使用启动初始的shell。其他的由用户初始化的进程会继承这个令牌的。而windows活动目录远程堆栈溢出漏洞,正是利用LDAP 3搜索请求功能对用户提交请求缺少正确缓冲区边界检查,构建超过1000个"AND"的请求,并发送给服务器,导致触发堆栈溢出,使Lsass.exe服务崩溃,系统在30秒内重新启动。
(11)[mdm.exe]
进程文件: mdm or mdm.exe
进程名称: Machine Debug Manager
描 述: Debug除错管理用于调试应用程序和Microsoft Office中的Microsoft Script Editor脚本编辑器。
介 绍:Mdm.exe的主要工作是针对应用软件进行排错(Debug),说到这里,扯点题外话,如果你在系统见到fff开头的0字节文件,它们就是mdm.exe在排错过程中产生一些暂存文件,这些文件在操作系统进行关机时没有自动被清除,所以这些fff开头的怪文件里是一些后缀名为CHK的文件都是没有用的LJ文件,可匀我馍境��换岫韵低巢��涣加跋臁6?X系统,只要系统中有Mdm.exe存在,就有可能产生以fff开头的怪文件。可以按下面的方法让系统停止运行Mdm.exe来彻底删除以fff开头的怪文件:首先按“Ctrl+Alt+Del”组合键,在弹出的“关闭程序”窗口中选中“Mdm”,按“结束任务”按钮来停止Mdm.exe在后台的运行,接着把Mdm.exe(在C:\Windows\System目录下)改名为Mdm.bak。运行msconfig程序,在启动页中取消对“Machine Debug Manager”的选择。这样可以不让Mdm.exe自启动,然后点击“确定”按钮,结束msconfig程序,并重新启动电脑。另外,如果你使用IE 5.X以上版本浏览器,建议禁用脚本调用(点击“工具→Internet选项→高级→禁用脚本调用”),这样就可以避免以fff开头的怪文件再次产生。
(12)[mmtask.tsk]
进程文件: mmtask or mmtask.tsk
进程名称: 多媒体支持进程
描 述: 这个Windows多媒体后台程序控制多媒体服务,例如MIDI。
介 绍:这是一个任务调度服务,负责用户事先决定在某一时间运行的任务的运行。
(13)[mprexe.exe]
进程文件: mprexe or mprexe.exe
进程名称: Windows路由进程
描 述: Windows路由进程包括向适当的网络部分发出网络请求。
介 绍:这是Windows的32位网络界面服务进程文件,网络客户端部件启动的核心。印象中“A-311木马(Trojan.A-311.104)”也会在内存中建立mprexe.exe进程,可以通过资源管理结束进程。
(14)[msgsrv32.exe]
进程文件: msgsrv32 or msgsrv32.exe
进程名称: Windows信使服务
描 述: Windows信使服务调用Windows驱动和程序管理在启动。
介 绍:msgsrv32.exe 一个管理信息窗口的应用程序,win9x下如果声卡或者显卡驱动程序配置不正确,会导致死机或者提示msgsrv32.exe 出错。
(15)[mstask.exe]
进程文件: mstask or mstask.exe
进程名称: Windows计划任务
描 述: Windows计划任务用于设定继承在什么时间或者什么日期备份或者运行。
介 绍:计划任务,它通过注册表自启动。因此,通过计划任务程序实现自启动的程序在系统信息中看不到它的文件名,一旦把它从注册表中删除或禁用,那么通过计划任务启动的程序全部不能自动运行。win9X下系统启动就会开启计划任务,可以通过双击计划任务图标-高级-终止计划任务来停止它自启动。另外,攻击者在攻击过程中,也经常用到计划任务,包括上传文件、提升权限、种植后门、清扫脚印等。
(16)[regsvc.exe]
进程文件: regsvc or regsvc.exe
进程名称: 远程注册表服务
描 述: 远程注册表服务用于访问在远程计算机的注册表。
(17)[rpcss.exe]
进程文件: rpcss or rpcss.exe
进程名称: RPC Portmapper
描 述: Windows 的RPC端口映射进程处理RPC调用(远程模块调用)然后把它们映射给指定的服务提供者。
介 绍:98它不是在装载解释器时或引导时启动,如果使用中有问题,可以直接在在注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunServices添加"字符串值",定向到"C:\WINDOWS\SYSTEM\RPCSS"即可。
(18)[services.exe]
进程文件: services or services.exe
进程名称: Windows Service Controller
描 述: 管理Windows服务。
介 绍:大多数的系统核心模式进程是作为系统进程在运行。打开管理工具中的服务,可以看到有很多服务都是在调用%systemroot%\system32\service.exe
(19)[smss.exe]
进程文件: smss or smss.exe
进程名称: Session Manager Subsystem
描 述: 该进程为会话管理子系统用以初始化系统变量,MS-DOS驱动名称类似LPT1以及COM,调用Win32壳子系统和运行在Windows登陆过程。
简 介:这是一个会话管理子系统,负责启动用户会话。这个进程是通过系统进程初始化的并且对许多活动的,包括已经正在运行的Winlogon,Win32(Csrss.exe)线程和设定的系统变量作出反映。在它启动这些进程后,它等待Winlogon或者Csrss结束。如果这些过程时正常的,系统就关掉了。如果发生了什么不可预料的事情,smss.exe就会让系统停止响应(就是挂起)。
(20)[snmp.exe]
进程文件: snmp or snmp.exe
进程名称: Microsoft SNMP Agent
描 述: Windows简单的网络协议代理(SNMP)用于监听和发送请求到适当的网络部分。
简 介:负责接收SNMP请求报文,根据要求发送响应报文并处理与WinsockAPI的接口。
(21)[spool32.exe]
进程文件: spool32 or spool32.exe
进程名称: Printer Spooler
描 述: Windows打印任务控制程序,用以打印机就绪。
(22)[spoolsv.exe]
进程文件: spoolsv or spoolsv.exe
进程名称: Printer Spooler Service
描 述: Windows打印任务控制程序,用以打印机就绪。
介 绍:缓冲(spooler)服务是管理缓冲池中的打印和传真作业。
(23)[stisvc.exe]
进程文件: stisvc or stisvc.exe
进程名称: Still Image Service
描 述: Still Image Service用于控制扫描仪和数码相机连接在Windows。
(24)[svchost.exe]
进程文件: svchost or svchost.exe
进程名称: Service Host Process
描 述: Service Host Process是一个标准的动态连接库主机处理服务.
介 绍:Svchost.exe文件对那些从动态连接库中运行的服务来说是一个普通的主机进程名。Svhost.exe文件定位在系统的%systemroot%\system32文件夹下。在启动的时候,Svchost.exe检查注册表中的位置来构建需要加载的服务列表。这就会使多个Svchost.exe在同一时间运行。每个Svchost.exe的回话期间都包含一组服务,以至于单独的服务必须依靠Svchost.exe怎样和在那里启动。这样就更加容易控制和查找错误。windows 2k一般有2个svchost进程,一个是RPCSS(Remote Procere Call)服务进程,另外一个则是由很多服务共享的一个svchost.exe。而在windows XP中,则一般有4个以上的svchost.exe服务进程,windows 2003 server中则更多。
(25)[taskmon.exe]
进程文件: taskmon or taskmon.exe
进程名称: Windows Task Optimizer
描 述: windows任务优化器监视你使用某个程序的频率,并且通过加载那些经常使用的程序来整理优化硬盘。
介 绍:任务管理器,它的功能是监视程序的执行情况并随时报告。能够监测所有在任务栏中以窗口方式运行的程序,可打开和结束程序,还可直接调出关闭系统对话框。
(26)[tcpsvcs.exe]
进程文件: tcpsvcs or tcpsvcs.exe
进程名称: TCP/IP Services
描 述: TCP/IP Services Application支持透过TCP/IP连接局域网和Internet。
(27)[winlogon.exe]
进程文件: winlogon or winlogon.exe
进程名称: Windows Logon Process
描 述: Windows NT用户登陆程序。这个进程是管理用户登录和退出的。而且winlogon在用户按下CTRL+ALT+DEL时就激活了,显示安全对话框。
(28)[winmgmt.exe]
进程文件: winmgmt or winmgmt.exe 文字
进程名称: Windows Management Service
描 述: Windows Management Service透过Windows Management Instrumentation data WMI)技术处理来自应用客户端的请求。
简 介:winmgmt是win2000客户端管理的核心组件。当客户端应用程序连接或当管理程序需要他本身的服务时这个进程初始化。WinMgmt.exe(CIM对象管理器)和知识库(Repository)是WMI两个主要构成部分,其中知识库是对象定义的数据库,它是存储所有可管理静态数据的中心数据库,对象管理器负责处理知识库中对象的收集和操作并从WMI提供程序收集信息。WinMgmt.exe在Windows 2k/NT上作为一个服务运行,而在Windows 95/98上作为一个独立的exe程序运行。Windows 2k系统在某些计算机上出现的WMI错误可以通过安装Windows 2k SP2来修正。
(29)[system]
进程文件: system or system
进程名称: Windows System Process
描 述: Microsoft Windows系统进程。
介 绍:在任务管理器中会看到这项进程,属于正常系统进程。
系统进程就介绍到这里。
在Windows2k/XP中,以下进程是必须加载的:
smss.exe、csrss.exe、winlogon.exe、services.exe、lsass.exe、svchost.exe(可以同时存在多个)、spoolsv.exe、explorer.exe、System Idle Process;
在Windows 9x中,一下进程是必须加载的:
msgsrv32.exe、mprexe.exe、mmtask.tsk、kenrel32.dll
Ⅷ 怎么计算服务器响应时间(java)
其实你有思路了啊。
问题简化一下:对一个ip,一个线程请求100次。该次请求的响应时间为调用httpclient前的响应时间减去接收到httpclient响应的时间。注意,本次请求是否有效要判断。平均响应时间和最大响应时间只不过是响应时间的统计而已,可以用数据库来做。
就是说数据库记录每次测试请求的响应时间,成功与否。统计数据最后出来。
只所以用多线程,是因为单线程顺序请求100次,不能模拟服务器真正的情况。
Ⅸ 2核4线程是什么意思是不是cpu可以在同一时间执行四个线程,而单线程的cpu是不是一个时间片段只
多线程cpu简单来说就是可以同时提供多任务支持从而减少任务切换时间,提高cpu的运算效率,而但线程cpu同时只能进行单一的任务处理。例如:一个程序支持4线程运行,cpu是4线程的或是更多线程的,这时候cpu可以利用4个线程来同时计算程序任务,相当于4条道路同时开启。而这时候单线程的cpu只有一条路可以进行计算,那么cpu运行程序时候就需要一个一个计算,没计算完一个程序,还要从cpu缓存或是内存中调取下一个任务,这样耽误时间,效率就会低些。但是线程越多不代表效率越高。例如单核心四线程的cpu在复杂任务中效率不一定高于单核心双线程cpu,软件支持不会很好,cpu分配任务也复杂,从而降低效率。多线程多应用在简单但是量多的任务中,依靠物理核心来模拟更多核心实现多线程的技术,因此在晶体管有限的cpu内核中,并不会提升很多速度,理想情况下可以达到20%的性能提升(效率是减少cpu在读取缓存文件时的闲置时间来提升的)。想提升系统性能,增减线程不如增加cpu的物理核心来的更加快。每增加一个物理核心可以增加接近100%的单核心运算能力,其多物理核心可以看做多个线程的处理能力。
Ⅹ 单线程和多线程是什么意思
多线程:多线程程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行。
单线程:单线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。
(10)单线程怎样计算时间扩展阅读:
由于多线程应用程序将程序划分成独立的任务,因此可以在以下方面显着提高性能:多线程技术使程序的响应速度更快,因为用户界面可以在进行其他工作的同时一直处于活动状态。 当前没有进行处理的任务可以将处理器时间让给其他任务。
占用大量处理时间的任务可以定期将处理器时间让给其他任务。 可以随时停止任务。 可以分别设置各个任务的优先级以优化性能。