LabVIEW分配多少线程?
解答:在LabVIEW中分配的线程是动态的,回答这个问题没有唯一答案。LabVIEW分配许多不同类型的线程:
一个UI线程,用于屏幕刷新和键盘鼠标输入。这个线程同时也用于特定VI的执行,譬如属性节点,非安全线程和DLL等。
一对定时线程,LabVIEW内部使用。(Windows95/NT分配额外的内部使用线程)
20个执行线程(perCPU).请看如下更多信息。
在Windows95/NT,线程动态地分配给一些操作,这些操作使用ActiveX客户端来控制LabVIEW。
因此,对于单核系统来说,23或者24个线程在应用开始时被分配。如果使用ActiveX客户端,当运行VI时更多的线程被分配。
关于执行线程的备注:
LabVIEW有5个"执行系统",并且每个执行系统分4个不同等级分配线程。于是总共有20个线程,并且没有包含UI线程,其也是用来执行的。分配执行线程是基于系统有多少处理器的。因此一个双核处理器电脑会有40个执行线程加上其他提到的线程。
关于优先级的备注:
子程序VIs总是使用调用执行系统。因此在相同的执行系统中是最有效的。“背景优先级”并没有标准的分配给线程。在这个优先级运行的VI使用更高的优先级的线程,当没有其他线程运行时。
高级用户可以调整一些分配给系统的线程通过运行如下VI:vi.lib\Utility\sysinfo.llb\threadconfig.vi。
编辑
添加图片注释,不超过 140 字(可选)
为什么在LabVIEW中关闭多线程?
要关闭多线程有两个原因:
使用的是较旧/较慢的计算机
的VI莫名其妙地崩溃
多线程处理可能导致LabVIEW在较旧的电脑上运行速度较慢,因为其资源有限。在这种情况下,关闭多线程可以提高LabVIEW的性能以及其他正在运行的应用程序的性能。
如今,多线程处理主要是为了调试无缘无故崩溃的VI而关闭的。使用被错误地标识为线程安全的ActiveX功能或dll的VI可能会崩溃,因为ActiveX功能或dll损坏了计算机的内存。如果关闭多线程使VI稳定,那么可以将注意力放在代码的这些部分。如果有权访问dll或ActiveX组件的源代码,则可以自己进行更正。如果dll或ActiveX组件来自第三方,则可以将dll设置为在用户界面线程中运行,但ActiveX组件可能要求LabVIEW不能恢复到多线程模式。
在LabVIEW8.2或更高版本中,“选项”对话框中的“性能和磁盘”选项卡不再存在。要关闭多线程处理,您必须手动将一个条目加入LabVIEW.ini文件。将ESys.StdNParallel=0添加到.ini文件,以在LabVIEW中禁用多线程处理。
LabVIEW、LabVIEW开发、LabVIEW编程、LabVIEW程序,相关项目问题,可联系我们。
上文中提到的例子和资料,均在word中的附件里,可点击下载。