问题标签 [dart-isolates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dart - 如何在 Dart 中干净利落地执行多个异步 I/O 操作(Isolates)?
在 Dart 中,有一个 Isolates 的概念。我有一个应用程序(我正在 Dart 中进行试验),它有很多异步 IO,其中每个调用(它们是数据库调用)都依赖于前一个。所以我最终陷入了嵌套回调地狱。
我想知道 Isolates 是否可以解决嵌套回调汤,但它看起来有点冗长,我不确定它是否适合它。
下一个 ECMAScript Harmony 中还提出了可以解决这些问题的生成器,但是您目前如何以干净的方式在 Dart 中执行大量异步 IO?
communication - 飞镖隔离为工人
编辑以使问题更清楚。
我正在尝试在 Dart 中使用 Isolates(或 Web Workers)。我能找到的在主线程和隔离线程之间进行通信的唯一方法是发送和调用,然后从主线程。但这是主线程将一些数据传递给隔离的好方法。
如果我希望隔离者成为生成信息的人怎么办?就像一个游戏引擎,它在一个工作线程中完成所有物理,然后将更新的世界信息发送到主线程?在 JavaScript 中,您可以随时发送数据。Dart 中是否有有效的方法?还是我还要等主线程给我打电话,然后再传给它?
PS我想知道,是否调用&然后阻塞线程直到回复完成?
dart - Dart 中的关闭挂钩?
我需要在 Dart 程序结束之前采取一些措施(转储统计数据)。程序在 main 方法结束后继续(还有其他隔离),所以我无法准确确定程序结束的时刻。
在 Java 中,我可以使用 java.lang.Runtime.addShutdownHook。Dart 运行时中是否存在类似的功能?
dart - 飞镖隔离中的消息顺序
如果您在 Scala 中使用演员,您不知道消息是否按您发送它们的顺序到达,dart 中的隔离是否确保它的消息按照您发送它们的顺序被接收?
multithreading - Dart 会在多核环境中并行执行隔离吗?
问题
Dart 中的隔离是否会利用多核环境中的所有可用内核并行运行,还是会在单个内核上多路复用?
背景
Google将 Dart 编程语言中的隔离(单线程并发单元)描述为在主堆栈上运行的“轻量级线程”,不会阻塞。
因此,在我看来,它只能在单核上多路复用,而不能在 SMP、双核、多核或集群环境中的多个核上并行运行。
虽然,我找不到任何关于此的信息,因此我提出了一个谦虚的问题。
dart - 是否可以将命令行参数传递给 spawnUri() 的新隔离
使用 spawnUri() 启动新的隔离时,是否可以将命令行参数传递给新的隔离?
例如:命令行:
在 app.dart
在其他.dart
虽然我可以通过它的 SendPort 将数据传递到 other.dart,但我想要的具体用途是使用另一个尚未通过 recievePort 回调创建的 dart 应用程序(例如 pub.dart 或任何其他命令行应用程序)。
dart - Dart Isolates 是否可以有多个发送和接收端口?
是否可以在 Dart 中为同一个 Isolate 打开多个发送和接收端口?
例如,以下代码示例将创建两个隔离区,每个隔离区都有自己的发送端口。但是,我想知道是否有任何方法可以为同一个隔离创建多个发送/接收端口并选择接收端口来发送消息。
dart - 不能从 dart:io 应用程序到 dart:html 应用程序的 spawnUri()?
这可能吗?也就是说,我试过了,还是不行。但理论上应该是可能的,不是吗?我只是来回传递消息,隔离内存空间等。
抛出:
dart - Dart - 隔离跨窗口通信
Dart 隔离是否可以进行跨窗口通信?这是我的场景:用户在浏览器窗口 A 中打开网站,窗口 A 生成一个新的隔离区。然后,用户单击创建新选项卡的链接并打开浏览器窗口 B(假设该链接位于同一域中,等等...)。浏览器窗口 B 是否可以从浏览器窗口 A 生成的隔离区发送和接收消息,如果可以,如何?
dart - Dart 服务器每隔一段时间检查一次
我正在尝试每隔 5 秒运行一次“checkServer”。但是“服务器很好”只运行一次。重复该功能需要做什么?