方法可以重叠执行吗?
Can methods be executed in overlap?
总结:
我试图找出在 单线程 上执行时是否可以重叠执行单个方法两次。或者,如果两个不同的方法可以重叠执行,当它们共享对特定变量的访问时,可能会发生一些不需要的行为。
单一方法示例:
var ball:Date;
method1 ():Date {
ball = new Date();
<some code here>
return ball;
}
问题:
1)如果method1使用事件系统每20ms触发一次,整个方法执行时间超过20ms,该方法会再次重叠执行吗?
2) 在单线程环境下是否有其他场景可以重叠执行一个方法,或者AVM2是否仅限于一次执行1个方法?
研究: 我通读了 https://www.adobe.com/content/dam/Adobe/en/devnet/actionscript/articles/avm2overview.pdf 这解释了 AVM2 有一个用于 运行 代码的堆栈,并且方法的描述使得它似乎如果没有第二个堆栈,堆栈系统一次只能容纳 1 个方法执行。我只是想与 StackeOverflow 专家仔细核实以确保确定。
我正在处理一些对时间敏感的数据,并且必须确保一个方法不会更改另一个方法同时访问的变量。
ActionScript 是单线程的;虽然,可以通过 ActionScript worker 支持并发,这些 worker 是 运行 并行的多个 SWF 应用程序。
如果您希望嵌套函数或匿名函数在函数的作用域链内执行,则有异步模式。
我认为你指的是 AVM2 如何执行事件驱动代码,你应该研究 AVM2 marshalled slice。播放器事件在切片的开头执行。
大量代码执行会降低帧速率。
它是线性的 - 同步阻塞。每帧不并行调用代码。
AVM2 执行 20 毫秒编组切片,这取决于帧速率执行用户操作、失效和渲染。
总结:
我试图找出在 单线程 上执行时是否可以重叠执行单个方法两次。或者,如果两个不同的方法可以重叠执行,当它们共享对特定变量的访问时,可能会发生一些不需要的行为。
单一方法示例:
var ball:Date;
method1 ():Date {
ball = new Date();
<some code here>
return ball;
}
问题:
1)如果method1使用事件系统每20ms触发一次,整个方法执行时间超过20ms,该方法会再次重叠执行吗?
2) 在单线程环境下是否有其他场景可以重叠执行一个方法,或者AVM2是否仅限于一次执行1个方法?
研究: 我通读了 https://www.adobe.com/content/dam/Adobe/en/devnet/actionscript/articles/avm2overview.pdf 这解释了 AVM2 有一个用于 运行 代码的堆栈,并且方法的描述使得它似乎如果没有第二个堆栈,堆栈系统一次只能容纳 1 个方法执行。我只是想与 StackeOverflow 专家仔细核实以确保确定。
我正在处理一些对时间敏感的数据,并且必须确保一个方法不会更改另一个方法同时访问的变量。
ActionScript 是单线程的;虽然,可以通过 ActionScript worker 支持并发,这些 worker 是 运行 并行的多个 SWF 应用程序。
如果您希望嵌套函数或匿名函数在函数的作用域链内执行,则有异步模式。
我认为你指的是 AVM2 如何执行事件驱动代码,你应该研究 AVM2 marshalled slice。播放器事件在切片的开头执行。
大量代码执行会降低帧速率。
它是线性的 - 同步阻塞。每帧不并行调用代码。
AVM2 执行 20 毫秒编组切片,这取决于帧速率执行用户操作、失效和渲染。