LabVIEW分配多少线程?

简介: LabVIEW分配多少线程?

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。


50f319745127491e6b2e746fde611a8c.png

编辑


添加图片注释,不超过 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中的附件里,可点击下载。

相关文章
|
3天前
|
安全 开发者
LabVIEW程序退出后线程仍在运行问题
LabVIEW程序退出后线程仍在运行问题
11 2
|
2月前
|
数据采集 缓存 前端开发
LabVIEW用了多线程,程序是不是会跑的更快些
LabVIEW用了多线程,程序是不是会跑的更快些
34 0
|
Java
Java多线程之线程池(合理分配资源)
3个核心线程都在忙,100个任务都排满了,那就只能找临时员工了
183 0
|
Java Windows C++
windows下利用线程池完成多任务的分配和运行
在做项目的过程中有时候为了提升效率,用了多线程的方法来对任务进行分割和应用,后来发现,采用线程池的方法能更好的利用线程资源来计算任务,网上有很多关于如何运行线程池的例子,msdn上也给出了对应的例子:https://msdn.
994 0
|
10天前
|
存储 测试技术
【工作实践(多线程)】十个线程任务生成720w测试数据对系统进行性能测试
【工作实践(多线程)】十个线程任务生成720w测试数据对系统进行性能测试
15 0
【工作实践(多线程)】十个线程任务生成720w测试数据对系统进行性能测试
|
11天前
|
数据采集 Java Unix
10-多线程、多进程和线程池编程(2)
10-多线程、多进程和线程池编程
|
11天前
|
安全 Java 调度
10-多线程、多进程和线程池编程(1)
10-多线程、多进程和线程池编程
|
15天前
|
存储 Linux C语言
c++进阶篇——初窥多线程(二) 基于C语言实现的多线程编写
本文介绍了C++中使用C语言的pthread库实现多线程编程。`pthread_create`用于创建新线程,`pthread_self`返回当前线程ID。示例展示了如何创建线程并打印线程ID,强调了线程同步的重要性,如使用`sleep`防止主线程提前结束导致子线程未执行完。`pthread_exit`用于线程退出,`pthread_join`用来等待并回收子线程,`pthread_detach`则分离线程。文中还提到了线程取消功能,通过`pthread_cancel`实现。这些基本操作是理解和使用C/C++多线程的关键。
|
18天前
|
Java 开发者
告别单线程时代!Java 多线程入门:选继承 Thread 还是 Runnable?
【6月更文挑战第19天】在Java中,面对多任务需求时,开发者可以选择继承`Thread`或实现`Runnable`接口来创建线程。`Thread`继承直接但限制了单继承,而`Runnable`接口提供多实现的灵活性和资源共享。多线程能提升CPU利用率,适用于并发处理和提高响应速度,如在网络服务器中并发处理请求,增强程序性能。不论是选择哪种方式,都是迈向高效编程的重要一步。