edt嵌入式确定性测试_CallSerially EDT和InvokeAndBlock(第1部分)

article/2025/10/12 12:47:26
edt嵌入式确定性测试

edt嵌入式确定性测试

8762754_orig
我们上一次在2008年解释了EDT背后的一些概念,因此,我们很高兴再次撰写有关EDT的文章,在开发人员指南以及有关Udemy的课程中都有关于EDT的部分,但是由于这是最重要的了解在Codename One中,它几乎没有重复。

关于EDT的好处之一是,其中的许多概念几乎与其他所有GUI环境(Swing / FX,Android,iOS等)中的概念相似。 因此,如果您能理解此说明,那么在其他平台上工作时也可能会有所帮助。

代号一可以具有任意数量的线程,但是在代号一中内部为事件调度线程创建了一个名为“ EDT”的线程。 这个名称不会处理线程错误,因为它处理包括绘画等在内的所有操作。

您可以将EDT想象成这样的循环:

while(codenameOneRunning) {performEventCallbacks();performCallSeriallyCalls();drawGraphicsAndAnimations();sleepUntilNextEDTCycle();
}

在Codename One中,一般的经验法则是:每次Codename One可能在EDT上调用其方法(除非另有明确说明),每次在Codename One中调用的内容都应在EDT上(除非另有明确说明) 。

有一些值得注意的特殊情况:

  1. NetworkManager / ConnectionRequest –在内部使用网络线程,而不是EDT。 但是,可以/应该从EDT调用它们。
  2. BrowserNavigationCallback –由于其独特的功能,必须在本机浏览器线程上调用它。
  3. 显示invokeAndBlock / startThread –创建全新的线程。

除了这些,几乎所有东西都在EDT上。 如果不确定,可以使用Display.isEDT方法检查您是否在EDT上。

违反EDT

您可以通过两种主要方式违反EDT:

  1. 从不是EDT线程的线程(例如,网络线程或由您创建的线程)中以Codename One调用方法。
  2. 在EDT上执行CPU密集型任务(例如读取大文件)–这将有效地阻止所有事件处理,绘画等,使应用程序感觉很慢。

幸运的是,我们在模拟器中有一个工具:EDT违规检测工具。 这样可以有效地打印堆栈跟踪,以怀疑是否违反了EDT。 它不是傻瓜,可能会使您误判,但是它应该可以帮助您解决一些难以发现的问题。

那么如何防止EDT违规呢?为了防止滥用EDT线程(EDT上的慢速操作),只需使用new Thread(),Display.startThread或invokeAndBlock生成一个新线程(稍后再介绍)。 然后,当您需要将更新广播回EDT时,可以使用callSerially或callSeriallyAndWait。

致电

callSerially调用它在事件调度线程上收到的runnable参数的run()方法。 如果您在单独的线程上,这将非常有用,但是当我们使用EDT并希望将操作推迟到EDT的下一个周期(在下一次有更多讨论)时,这也很有用。 callSeriallyAndWait与串行调用相同,但是在返回之前,它会等待callSerially完成。 由于明显的原因,不能在EDT上调用它。

在本迷你教程的第二部分中,我将讨论invokeAndBlock以及为什么我们已经在EDT上时为什么要使用callSerially。

更新:您可以在此处阅读本文的第二部分。

翻译自: https://www.javacodegeeks.com/2014/11/callserially-the-edt-invokeandblock-part-1-2.html

edt嵌入式确定性测试


http://chatgpt.dhexx.cn/article/oLNDcPqg.shtml

相关文章

EDT部署功能介绍

EDT部署功能介绍 当你在开发EDT Web前段程序的时候,你需要接触到EDT部署操作,从而将生成好的RUIHandler和Service的目标代码部署复制到目标Web程序中。和大家所熟知的部署到应用程序服务器上不同,EDT的部署操作是将生成好的Java/JavaScript/…

EDT技术 ug - 第一章节 Getting Start

文章目录 引言TestKompress Compression LogicEDT FlowEDT IP generationEDT synEDT IP pattern gennerationATPG 熟悉工具batch mode执行系统命令 本系列介绍的是Tessent的EDT( Embedded Deterministic Testing)技术。 参考为EDT tessent的 TestCompre…

DIY01_NE555叮咚门铃

文章目录 项目简介电路原理一、555定时器电路结构及工作原理二、叮咚门铃电路工作原理 原理图与PCB图一、原理图二、PCB图1. 初版2. 改进版 实物图立创打板流程经验总结 项目简介 第一次尝试自己DIY一个小电路设计,笔者选择了相对简单的NE555叮咚门铃。在本篇博客中…

NE555波形发生器手把手教程之NE555内部结构(一)

通过ne555搭建的波形发生器 可实现方波、三角波、正弦波输出 工程链接:https://pan.baidu.com/s/1T-9bdnO1IrWUsjmRTl12zQ 提取码:py66 一、芯片介绍 参数 供应电压:4.5-18V 供应电流:10-15mA 输出电流:225mA (m…

NE555基本原理及相关公式的推导

NE555基本原理及相关公式的推导 基本原理公式推导 基本原理 NE555主要由分压电路,电压比较器,RS触发器三部分组成; 分压电路电压比较器RS触发器提供电压比较器比较电压根据触发信号输出高低电平用于输出矩形波 当 V A > 2 3 V c c V_A&g…

模电学习12. NE555 方波信号发生器

模电学习12. NE555 方波信号发生器 一、NE555 基本功能1. 基本作用2. 基本组成 二、NE555方波生成电路1. 基本原理2. 原理图3. 仿真(1)RP1 设置为10%(2)RP1设置为90% 4. 实际电路 一、NE555 基本功能 1. 基本作用 NE555是一款广…

mysql profile 工具Neor Profile

一、下载Download - Neor Profile SQL http://www.profilesql.com/files/download/sqlprofiler-4.1.1.exe Neor Profile 这款免费的mysql 分析工具,这个工具类似于一个代理 本地启动一个mysql 代理服务,类似于MyCat 二、安装完成配置 三、代码连接代…

蓝桥杯NE555定时器与频率测量

使用的是蓝桥杯单片机CT107D实训平台: 555定时器内部,有3个5K的电阻分压。 NE555是一个纯硬件的设计,一旦电路确定了,其功能也就定了。 在蓝桥杯的板子上,555定时器是一个信号发生电路,通过定位器Rb3可改…

NE555的使用与理解

NE555 一款模拟与数字信号的集成芯片,通过一个电容充放电来输出方波,电容充放电的快慢决定了NE555输出的方波的频率,再通过控制两个电阻的比值来改变其输出方波的占空比。 外观图 内部图 因为NE555中有三个电阻R且都为5K所以称为555&#x…

蓝桥杯单片机设计与开发⑬ ---NE555模块

一、555定时器&频率测量 1. 电路原理 NE555是一种时钟芯片,输出一定频率的脉冲信号。就其模块特性,简单点来说,该模块会根据Rb3电位器的阻值,在SIG脚输出相应的频率的脉冲信号。 第十届竞赛中对该模块设置了考点,…

NE555 Motor LED Chaser

文章目录 1.前言2.资料下载 1.前言 这个是从YouTube上搬运来的,如图所示 2.资料下载 所需材料 #1# 10k resistor 1 #2# 10k variable resistor 1 #3# 10uf capacitor 1 #4# 3mm blue led 4 #5# 3mm yellow led 4 #6# 3mm red led 4 #7# 3mm green led 4 #8# 3mm…

单片机蓝桥杯——NE555频率测量

原理: 对蓝桥杯单片机板子上NE555电路进行频率测量时,不需要任何的配置,整个单片机测量频率的过程中,跟NE555芯片没什么关系,归根结底考察的还是定时/计数器。但需要注意: (1)当用到NE555时&am…

蓝桥杯单片机-NE555模块

一、简介 1、NE555在开发板中用于输出频率可变,占空比不变的方波。 2、NE555是纯硬件的设计,通过电位器RB3可改变其信号输出频率。不需要编程实现其功能。 考点:使用定时器的计数模式测量NE555输出的频率 3、开发板上电路 NET SIG即接P34&…

NE555产生方波

NE555详解 上图是芯片的引脚图 上图是芯片的内部结构图,脚号与第一张图的引脚相对应 从结构图可以得出下表: 接下来看应用图; 这是从CSDN上得到的一个方波发生器的原理图,对齐进行分析: 原理图将6和2脚连在一起, 所…

如何使用NE555产生方波

NE555在很多电路设计中都会用到,常用来实现施密特触发器,单稳态触发器和多谐振荡器 常用的NE555是这种八脚的,大家可以看下引脚定义 首先我们来看下NE555的内部构造: C1和C2是两个运放比较器,内部的这三个电阻阻值都是…

NE555

555定时器是电子工程领域中广泛使用的一种中规模集成电路,它将模拟与逻辑功能巧妙地组合在一起,具有结构简单、使用电压范围宽、工作速度快、定时精度高、驱动能力强等优点。555定时器配以外部元件,可以构成多种实际应用电路。广泛应用于产生…

NE555振荡电路

NE555振荡电路 简介 NE555是属于555系列的计时IC的其中的一种型号,555系列IC的接脚功能及运用都是相容的,只是型号不同的因其价格不同其稳定度、省电、可产生的振荡频率也不大相同;而555是一个用途很广且相当普遍的计时IC,只需少…

蓝桥杯单片机(七)NE555

上一章讲了蓝桥杯单片机如何输出PWM波 蓝桥杯单片机(六)PWM 这一章讲解蓝桥杯单片机开发板上的NE555方波发射器的频率测量,这也是近几年的考点。 首先看原理图: 由数电的知识: NE555的周期T0.7(RaRb)C 频率f1/T图中R8为定值电阻&#xff0c…

NE555方波发生器

基础知识 NE555不需要进行编程,或者与单片机进行通信,它本身就能产生方波。方波的频率可以调节,只要改变电阻电容的值就可以了。 电路原理 方波产生在排针J3的15(SIGNA)脚上,方波的频率通过Rb3电位器进行调…

NE555 工作模式介绍

💖 作者简介:大家好,我是泽奀。全栈领域新星创作者🏆 作者周榜:78 👑 📝 个人主页:weixin_52632755的博客_泽奀_CSDN博客 💬 本系列:【电子】系列_泽奀的博客-CSDN博…