问题标签 [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 隔离和线程之间的区别(Java、C#)
对我来说,DART Isolate 看起来像一个具有不同术语的线程 (Java/C#)。Isolate 与 Thread 在哪个方面不同?
dart - 设计插件架构
愿有人给我们一个在 Dart 中设计插件架构核心的方法大纲。
在 Dart 中如何在运行的应用程序核心中添加、更新和删除插件?
Dart 的讨论组中已经给出了一些答案 - https://groups.google.com/a/dartlang.org/forum/#!topic/misc/O3BA_9FXcp4。
我把线程移到这里,因为 stackoverflow 更适合这样的问题。
multithreading - 如何处理 Isolates 中抛出的异常?
我正在试验 Dart 并使用新streamSpawnFunction
的来创建一个新的隔离。
我在 Dartium 中运行我的代码,但我注意到如果隔离中发生某种不可恢复的错误,我在控制台上不会收到任何错误消息。因为 Isolate 代码中的断点不起作用,所以调试真的很痛苦。
旧的基于端口的 Isolate spawn 函数 ( spawnFunction
) 具有用于处理错误的回调函数。我想知道为什么这不适用于streamSpawnFunction
. 有没有一种新的方式来订阅 Isolate 的错误事件?
dart - 我应该如何使用 Dart Isolate unhandledExceptionCallback?
我正在尝试在我的 Dart webapp 中使用 Isolates,但我似乎无法使错误回调参数起作用。我有一个在 Dartium 中运行的非常基本的代码。
除了“主要”之外,我从未见过任何东西。打印在控制台上。我做错了什么还是现在坏了?
dart - 在两个 Dart VM 之间建立通信的最简单方法是什么?
在两个 Dart VM 之间建立通信的推荐方法是什么?像这里推荐的那样隔离?
dart - 在调用之前检测 ReceivePort 是否有处理程序
我使用 spawnFunction 创建了一个隔离,并提供了一个错误处理程序并将发送包装在 try/catch 中。
如果我尝试发送到 replyTo 并且它没有注册接收,那么它(正确地)抛出一个方法未找到异常,但我不知道如何捕获和处理它。
如果您取消注释 recPort 行,它应该一切正常。
dart - 如何终止长时间运行的隔离
我试图了解如何将我的 Java 国际象棋引擎移植到飞镖。
所以我明白我应该使用 Isolates 和/或 Futures 来与 GUI 并行运行我的引擎,但是我怎样才能强制引擎终止搜索。
在java中,我只是设置了一些在引擎线程和gui线程之间共享的布尔值。
dart - 如何终止长时间运行的隔离 #2
我试图了解如何将我的 Java 国际象棋引擎移植到飞镖。
所以我明白我应该使用 Isolates 来与 GUI 并行运行我的引擎,但是我怎样才能强制引擎终止搜索。
在java中,我只是设置了一些在引擎线程和gui线程之间共享的布尔值。
我得到的答案:
您应该向隔离者发送消息,告诉它停止。您可以简单地执行以下操作:
port.send('STOP');
我的请求
感谢您的澄清。我不明白的是,如果国际象棋引擎隔离由于 port.send('THINK') 命令而忙碌,它如何响应 port.send('STOP') 命令
dart - Dart:并行处理传入的 HTTP 请求
我正在尝试在 Dart 中编写一个可以并行处理多个请求的 HTTP 服务器。到目前为止,我一直未能成功实现“并行”部分。
这是我一开始尝试的:
对于每个请求,它都会忙工作一秒钟,然后完成。我让它以这种方式处理请求,以便它的时间是可预测的,所以我可以很容易地在 Windows 任务管理器中看到请求的效果(CPU 核心跳到 100% 的使用率)。
我可以说这不是并行处理请求,因为:
如果我加载几个浏览器选项卡
http://example:8080/
然后全部刷新它们,这些选项卡会依次加载,每个选项卡之间大约 1 秒。如果我将负载测试工具wrk与这些设置一起使用...
wrk -d 10 -c 8 -t 8 http://example:8080/
...它会在我给它的 10 秒内完成 5 到 8 个请求。如果服务器正在使用我所有的 8 个内核,我预计会有接近 80 个请求的数字。当我在 wrk 测试期间打开 Windows 任务管理器时,我观察到我的核心只有一个接近 100% 的使用率,其余的几乎都处于空闲状态。
所以,然后我尝试使用隔离,希望为每个请求手动生成一个新的隔离/线程:
这根本不起作用。它不喜欢我试图将 HttpRequest 作为消息发送给隔离。这是错误:
使用的版本:
- Dart 编辑器版本 0.5.9_r22879
- Dart SDK 版本 0.5.9.0_r22879
是否可以使用 Dart 使用我机器的所有可用内核并行处理这些请求?
debugging - 调试隔离
我未能调试隔离。即调试器不会在隔离的断点处停止。
我认为目前不支持这一点,我的问题是。
1)我是否正确地认为尚不支持调试隔离?
2)如果是这样,在不久的将来是否有计划增加对此的支持?