可重入VI,VI模板和动态VI之间的差异 转

可重入VI

当您想要同时运行同一VI的多个实例时,将使用可重入VI。当VI不可重入时,VI只有一个数据空间。因此,一次只能有一个调用者运行VI,因此调用者可能必须“等待轮到它”时才能使用VI。这是VI的默认选项,但您可以将VI设置为可重入。其中有两种类型的重入:共享 和 预分配。

共享的可重入VI

如果选择了共享克隆可重入执行选项,则VI会具有一个数据空间池(与克隆池相同)。最初在调用VI开始时只创建两个克隆。调用者将使用其中一个数据空间,但它并不知道使用的时哪个数据空间,并且它可能是后续调用中的不同实例。当池中没有足够的数据空间(克隆)用于一定数量调用者同时调用时,将创建新的数据空间(克隆)并将其添加到池中。这里“实例之间共享克隆”中的“共享”一词意味着数据空间可以由多个调用者随时间使用。如果有20个针对SubVI的调用,但是这些调用发生的时间最多中只有两个调用同时进行,则池中只有两个数据空间,它们将在20个调用中“共享”。由于根据当前需要仅创建必要数量的克隆,因此优化了存储器使用。为了实现最快的执行速率和最佳的内存优化,建议使用此选项。

预先分配的可重入VI

如果选择了预分配克隆可重入执行选项,则每个调用者都有自己的私有数据空间(和克隆)。如果有20次调用VI,则在调用VI开始时将创建20个克隆并将其添加到池中。如果调用模式与上述调用模式类似,则可能只有两个同时忙碌。如果要对SubVI的给定实例的每次调用都使用相同的克隆(例如,如果SubVI需要将数据从这次调用保持到下次调用)的话,则使用这种类型的重入VI。共享克隆在这种情况下不起作用,因为您永远不会知道SubVI的哪个实例上次使用了您将要使用的克隆,并且存储的信息将在SubVI之间无法预测地“串扰”。 “预分配”意味着对于每次调用,都会创建该次调用的数据空间和克隆。预分配发生在VI运行之前。如果要打开同一VI的多个前面板,可重入的SubVI选项将不起作用。
 

如果要多次打开的VI是顶层VI,则可以将磁盘上的顶层VI复制到具有唯一名称的临时目录并打开新文件实例,没有必要复制任何SubVI。只需复制顶层VI,然后,您可以使用VI Server打开并运行副本。

模板VI

您可以将多实例面板制作成模板VI,然后每次从模板打开文件。 VI模板是具有 .vit 扩展名的VI。您可以在 文件»新建»从模板开始 下从模板创建新VI。这将创建一个具有自己内存空间的VI的新实例。它们在创建时具有不同的存储位置,且仅用作制作另一个VI的起点。然后,您需要配置新创建的VI是否可重入。


动态VI

您可以使用VI Server打开VI和VI模板。 VI Server 用于动态加载和运行VI。使用SubVI时,加载顶层VI时会加载SubVI的代码和数据空间。当您动态加载VI时,在VI服务器调用SubVI之前,不会加载其代码,而不是将其用作SubVI并在调用主程序时加载代码。这样可以在启动时节省内存。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/51818.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARKTS数组和Map的常规操作

数组 Entry Component struct ArrayDemo {State message: string Hello World;// 创建一个数组State testList: Array<string> [测试1, 测试2, 测试3];build() {Row() {Column() {Button(新增元素).onClick(() > {// this.testList.push(测试4)//在数组末尾添加一个…

js基础速成-字符串方法

字符串方法 JavaScript 中的所有内容都是对象。字符串是一种基本数据类型&#xff0c;这意味着一旦创建就无法修改。字符串对象有许多字符串方法&#xff0c;有不同的字符串方法可以帮助我们处理字符串。 length 字符串的 length 方法返回字符串中字符的数量&#xff0c;包括…

Hibernate 批量插入速度慢的原因和解决方法

由于业务需要一次性连续写入超过10k条以上的新数据&#xff0c;当对象超过10个成员变量以后&#xff0c;整个写入过程居然需要长达35秒&#xff0c;这个速度是不能接受的&#xff0c;故此研究了一下怎么开启Hibernate批量写入的功能。 我这边使用的是Hibernate 5.6.15 在网上…

Spark MLlib模型训练—回归算法 Linear regression

Spark MLlib模型训练—回归算法 Linear regression 线性回归是回归分析中最基础且应用广泛的一种方法。它用于建模目标变量和一个或多个自变量之间的关系。随着大数据时代的到来,使用像 Spark 这样的分布式计算框架进行大规模数据处理和建模变得尤为重要。本文将全面解析 Spa…

Java 异常架构Exception(异常)

1. Exception 类的概述 在Java中&#xff0c;Exception类是Throwable类的直接子类之一。Throwable类是Java异常处理体系的根类&#xff0c;所有异常和错误都继承自它。Java的异常体系可以分为以下几个部分&#xff1a; Throwable&#xff1a;所有异常和错误的基类。 - Exce…

【Java|Stream流】不可变集合

文章目录 1.什么是不可变集合2.创建不可变集合的方式2.1 List类型2.2 Set2.3 Map 1.什么是不可变集合 不可变集合:不可以被修改的集合 不可变集合优点: 安全性 由于不可变集合不能被修改&#xff0c;所以可以安全地在多个线程之间共享&#xff0c;而不用担心被意外修改&#xf…

【kubernetes】Service 介绍和应用

一&#xff0c;Service介绍 四层代理是基于传输层&#xff08;第四层&#xff09;工作的代理&#xff0c;主要在传输层&#xff08;如TCP、UDP协议&#xff09;上转发和管理数据流 七层代理是基于应用层&#xff08;第七层&#xff09;工作的代理&#xff0c;能够对应用层协议…

# 利刃出鞘_Tomcat 核心原理解析(十)-- Tomcat 性能调优--2

利刃出鞘_Tomcat 核心原理解析&#xff08;十&#xff09;-- Tomcat 性能调优–2 二、Tomcat专题 - Tomcat性能调优 - 性能测试结果说明 1、压力性能测试 # 打开另一个终端&#xff0c;切换目录 [rootbogon ~]# cd /usr/local/tomcat# 进行压力性能测试[rootbogon tomcat]# …

JSON处理库 -- Fastjson

文章目录 一、json格式1.1 用途1.2 语法1.3 常见格式 二、fastjson常用类2.1 JSONObject2.2 JSONArray 三、序列化和反序列化3.1 默认序列化与反序列化3.2 序列化的扩展3.3 自定义序列化SerializeFilter3.4 JSONField 注解3.5 复习Jackson 一、json格式 1.1 用途 一种轻量级的…

浅谈SpringMvc的核心流程与组件

一、SpringMvc的核心流程 当发起请求时被前置的控制器(DispatcherServlet)拦截到请求&#xff0c;根据请求参数生成代理请求&#xff0c;找到请求对应的实际控制器&#xff0c;控制器处理请求&#xff0c;创建数据模型&#xff0c;访问数据库&#xff0c;将模型响应给中心控制…

threadLocal底层源码解析

分享链接&#xff1a; https://www.cnblogs.com/blissful/p/17929221.html

边缘计算与物联网中的深度学习应用

边缘计算与物联网中的深度学习应用 目录 一、引言 二、边缘计算基础 三、物联网基础 四、深度学习在物联网中的应用实例 五、总结 一、引言 随着物联网技术的不断发展&#xff0c;越来越多的设备和传感器被连接到互联网上&#xff0c;产生了海量的数据。这些数据需…

Android创建自己的内容提供器(ContentProvider)

文章目录 Android创建自己的内容提供器&#xff08;ContentProvider&#xff09;创建内容提供器的步骤新建MyProvider继承自ContentProvider内容URI的格式修改MyProvider中的代码MIME类型 Android创建自己的内容提供器&#xff08;ContentProvider&#xff09; 在上一节当中&a…

扑捉一只耿鬼(HTML文件)

图例&#xff1a; 代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><title>耿鬼</title><style>body {background: #fff;font-family: Comfortaa, sans-serif;}* {box-sizing:…

Unet改进12:添加PCONV||减少冗余计算和同时存储访问

本文内容:添加PCONV 目录 论文简介 1.步骤一 2.步骤二 3.步骤三 4.步骤四 论文简介 为了设计快速的神经网络,许多工作都集中在减少浮点运算(FLOPs)的数量上。然而,我们观察到FLOPs的这种减少并不一定会导致类似程度的延迟减少。这主要源于低效率的每秒浮点操作数(FLOP…

Bean 的实例化(创建 | 获取)

Spring为Bean提供了多种实例化方式&#xff0c;包括如下4种方式&#xff1a; 第一种&#xff1a;通过构造方法实例化第二种&#xff1a;通过简单工厂模式实例化第三种&#xff1a;通过factory-bean实例化&#xff08;工厂方法模式实例化&#xff09;第四种&#xff1a;通过Fact…

盘点java8 stream中隐藏的函数式接口

shigen坚持更新文章的博客写手&#xff0c;记录成长&#xff0c;分享认知&#xff0c;留住感动。个人IP&#xff1a;shigen 提到函数式接口&#xff0c;最常见的就是lambda表达式&#xff0c;IDEA也有智能的提示&#xff1a; 最后改成这样的就是最简洁的、IDEA希望的风格&#…

Android UI绘制原理:UI的绘制流程是怎么样呢?为什么子线程不能刷新UI呢?讲解大体的流程是怎么样的

目录&#xff1a; 一、 为什么要学习android UI绘制原理呢&#xff1f;对我们有什么帮助&#xff1f; 1.解决复杂布局问题&#xff1a;了解UI绘制原理可以帮助我们更好地理解和解决布局问题&#xff0c;比如使用自定义View、优化布局层级等。 2.知道何时触发布局&#xff08;…

Java中的阻塞队列BlockingQueue

阻塞队列简介 阻塞队列是一个支持两个附加操作的队列 -> 支持阻塞的插入方法&#xff1a;当队列满时&#xff0c;队列会阻塞插入元素的线程&#xff0c;直到队列不满支持阻塞的移除方法&#xff1a;意思是在队列为空时&#xff0c;获取元素的线程会等待队列为非空 ->这…

【AI大模型】基于docker部署向量数据库Milvus和可视化工具Attu详解步骤

&#x1f680; 作者 &#xff1a;“大数据小禅” &#x1f680; 文章简介 &#xff1a;本专栏后续将持续更新大模型相关文章&#xff0c;从开发到微调到应用&#xff0c;需要下载好的模型包可私。 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 目…