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中的附件里,可点击下载。

相关文章
|
5天前
|
数据采集 缓存 前端开发
LabVIEW用了多线程,程序是不是会跑的更快些
LabVIEW用了多线程,程序是不是会跑的更快些
13 0
|
Java
Java多线程之线程池(合理分配资源)
3个核心线程都在忙,100个任务都排满了,那就只能找临时员工了
173 0
|
Java Windows C++
windows下利用线程池完成多任务的分配和运行
在做项目的过程中有时候为了提升效率,用了多线程的方法来对任务进行分割和应用,后来发现,采用线程池的方法能更好的利用线程资源来计算任务,网上有很多关于如何运行线程池的例子,msdn上也给出了对应的例子:https://msdn.
982 0
|
3天前
|
Python
|
5天前
|
Java 数据库
【Java多线程】对线程池的理解并模拟实现线程池
【Java多线程】对线程池的理解并模拟实现线程池
17 1
|
1天前
|
缓存 NoSQL Redis
【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?--epoll调用和中断
【5月更文挑战第18天】`epoll`包含红黑树和就绪列表,用于高效管理文件描述符。关键系统调用有3个:`epoll_create()`创建epoll结构,`epoll_ctl()`添加/删除/修改文件描述符,`epoll_wait()`获取就绪文件描述符。`epoll_wait()`可设置超时时间(-1阻塞,0立即返回,正数等待指定时间)。当文件描述符满足条件(如数据到达)时,通过中断机制(如网卡或时钟中断)更新就绪列表,唤醒等待的进程。
23 6
|
2天前
|
NoSQL Redis 缓存
【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?
【5月更文挑战第17天】Redis常被称为单线程,但实际上其在处理命令时采用单线程,但在6.0后IO变为多线程。持久化和数据同步等任务由额外线程处理,因此严格来说Redis是多线程的。面试时需理解Redis的IO模型,如epoll和Reactor模式,以及其内存操作带来的高性能。Redis使用epoll进行高效文件描述符管理,实现高性能的网络IO。在讨论Redis与Memcached的线程模型差异时,应强调Redis的单线程模型如何通过内存操作和高效IO实现高性能。
28 7
【后端面经】【缓存】36|Redis 单线程:为什么 Redis 用单线程而 Memcached 用多线程?
|
4天前
|
监控 Java 测试技术
在多线程开发中,线程死循环可能导致系统资源耗尽,影响应用性能和稳定性
【5月更文挑战第16天】在多线程开发中,线程死循环可能导致系统资源耗尽,影响应用性能和稳定性。为解决这一问题,建议通过日志记录、线程监控工具和堆栈跟踪来定位死循环;处理时,及时终止线程、清理资源并添加错误处理机制;编码阶段要避免无限循环,正确使用同步互斥,进行代码审查和测试,以降低风险。
18 3
|
5天前
|
设计模式 消息中间件 安全
【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列
【Java多线程】关于多线程的一些案例 —— 单例模式中的饿汉模式和懒汉模式以及阻塞队列
12 0