问题标签 [worker-thread]
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.
javascript - Node.js 工作线程中的 I/O 性能
这是一个使用工作线程的示例,它在本地机器上花费约 600 毫秒来进行同步 I/O:
使用单线程的相同示例需要大约 2 秒的异步 I/O:
显然,同步阻塞操作在这里效率更高。
Node.js工作线程参考状态:
Worker 对于执行 CPU 密集型 JavaScript 操作很有用;不要将它们用于 I/O,因为 Node.js 用于异步执行操作的内置机制已经比 Worker 线程更有效地处理它。
这种说法的依据是什么?
关于 I/O,主线程和工作线程有什么区别?
工人的目的不是不限于非阻塞异步操作吗?
在哪些情况下 I/O 性能在工作线程中可能会降低效率?
.net - 引发 OnPropertyChanged 后 UI 未更新
我需要每 5 秒运行一次以更新 UI
CalculateTimeSinceLastLogin 只是将 TimeSinceLastLogin 属性设置为一个值。没什么特别的。
计时器在工作线程上执行,因此 UI 不会根据我的判断进行更新。我应该怎么做才能更新 UI?我的解决方案需要是不可知的,因为它可以针对 wpf 或 xamarin。
c# - IIS 工作进程和工作线程
我有一个简单的 ASP.Net MVC 应用程序,它部署在 IIS 中。我对此应用程序进行了示例负载测试。我的应用程序中记录了响应时间。当我将应用程序中的响应时间与 IIS 响应时间进行比较时,IIS 响应时间比我的应用程序日志高。
我从中了解到的是,IIS 没有足够的工作线程来处理请求并保持请求处于暂停状态。此保持时间也记录为 IIS 响应时间的一部分。
我的理解是否正确。如果是,我如何增加工作线程以增加整体吞吐量。
我尝试了以下步骤来增加工作线程,但更改后我没有看到任何影响。 https://support.microsoft.com/en-us/help/821268/contention-poor-performance-and-deadlocks-when-you-make-calls-to-web-s
问候
javascript - nodejs - DataCloneError: function () { [native code] } 无法克隆
我正在尝试生成线程(使用新的 Nodejs 模块“worker_threads”)并向它们中的每一个传递一个复杂对象,该对象是 Puppeteer browser.newPage() 实例的“页面”对象。我尝试使用 workerData 和 MessageChannels - 来自文档:
port.postMessage:向该通道的接收端发送一个 JavaScript 值。值将以与 HTML 结构化克隆算法兼容的方式传输。特别是,它可能包含循环引用和对象,如 JSON API 无法字符串化的类型数组。
但我总是得到错误:
(node:7133) UnhandledPromiseRejectionWarning: DataCloneError: function () { [native code] } 无法克隆。在 Worker.postMessage (internal/worker.js:378:23)
我还尝试对其进行字符串化并解析它,但页面对象还包含我无法从线程上下文评估的函数(我也想避免使用 eval())。
问题是:如何将像 Puppeteer browser.newPage() 实例这样的复杂对象传递给 Nodejs 中由 worker_threads 生成的线程?
javascript - 在节点 js 中同步工作线程
我有一些用于玩“工作线程”(Node js)的代码。当在循环中的 app.js 中设置条件 i<100000000 时,我的第二个线程在第一个线程未完成之前不会启动。Node js如何工作同步线程?以及如何并行使用两个或更多线程?
java - 在服务中同步执行长时间运行的方法
我有一个具有一组操作的 android 服务:
我的服务.java
我正在调用来自客户端活动的方法,例如,MyClientActivity.java
驻留在同一进程中。
对于每个操作,服务调用一些逻辑并以同步方式等待结果。当服务正在执行所有这些逻辑时,我不希望用户执行任何其他操作而只显示加载屏幕。所以基本上,在我启动一个操作后,我想MyClientActivity
同步等待状态码。现在我知道我不能阻止 UI 线程来避免 ANR。
如何使此操作在单独的线程上执行,然后返回结果,以便我可以通过基于此结果更改 UI 将结果适当地传播回用户。
我对此很陌生,无法真正掌握这些概念。如果有人可以解释一个会有帮助的例子。
node.js - 尝试在工作线程中加载 bcrypt 时出现“模块未自行注册”错误
有问题的示例项目:https ://github.com/Suvtruf/bcrypt-child-process-crash-proof
如果你试图在工作线程中加载 bcrypt,你会得到错误:
信息:
- 节点 v11.10.0
- bcrypt v3.0.4
我该如何解决?
java - Swing 动画滞后,SwingWorker 没有帮助?
我正在绘制一个简单的动画,Explosion
我一直在尝试使用一个摆动工作线程来完成所有的“繁重计算”;但是,我的动画仍然非常慢,下面的这种用法对于 swingworker 是否正确?或者问题可能出在我的动画课上?
谢谢!
node.js - [Nodejs - worker-threads]:主线程是否可以选择等待所有工作线程完成?
有没有一个选项可以让主线程等待所有工作线程完成?
在下面的代码中,mainThread.js 只是简单地创建了 worker。
工人需要很长时间才能执行。
在这种情况下,我们如何指示主线程等待所有线程执行完毕?
类似于 java 中的 thread.join() 的东西。
主线程.js:
workerThread.js:
执行:
node --experimental-worker mainThread.js
PS:我们可以尝试通过将其作为 http 服务器实例运行或设置一个具有巨大值的 setTimeout 来使其工作。但是,nodejs 本身是否有一个选项来实现它是个问题。
c# - 无法使用线程和 XDocument 写入 XML 文件
我无法使用工作线程写入 XML 文件 - 我收到此错误:
System.IO.IOException: '进程无法访问文件'C:\work\FinanceManagement\FinanceManagement\bin\DebugExpense.xml',因为它正被另一个进程使用。
但如果我像它一样使用它WriteToXML(exp);
。我认为XDocument.Load(filepath)
不是线程安全的。我该如何解决这个问题?