问题标签 [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.

0 投票
1 回答
1695 浏览

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 性能在工作线程中可能会降低效率?

0 投票
0 回答
49 浏览

.net - 引发 OnPropertyChanged 后 UI 未更新

我需要每 5 秒运行一次以更新 UI

CalculateTimeSinceLastLogin 只是将 TimeSinceLastLogin 属性设置为一个值。没什么特别的。

计时器在工作线程上执行,因此 UI 不会根据我的判断进行更新。我应该怎么做才能更新 UI?我的解决方案需要是不可知的,因为它可以针对 wpf 或 xamarin。

0 投票
1 回答
4587 浏览

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

问候

0 投票
2 回答
7277 浏览

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 生成的线程?

0 投票
1 回答
822 浏览

javascript - 在节点 js 中同步工作线程

我有一些用于玩“工作线程”(Node js)的代码。当在循环中的 app.js 中设置条件 i<100000000 时,我的第二个线程在第一个线程未完成之前不会启动。Node js如何工作同步线程?以及如何并行使用两个或更多线程?

0 投票
2 回答
103 浏览

java - 在服务中同步执行长时间运行的方法

我有一个具有一组操作的 android 服务:

我的服务.java

我正在调用来自客户端活动的方法,例如,MyClientActivity.java驻留在同一进程中。

对于每个操作,服务调用一些逻辑并以同步方式等待结果。当服务正在执行所有这些逻辑时,我不希望用户执行任何其他操作而只显示加载屏幕。所以基本上,在我启动一个操作后,我想MyClientActivity同步等待状态码。现在我知道我不能阻止 UI 线程来避免 ANR。
如何使此操作在单独的线程上执行,然后返回结果,以便我可以通过基于此结果更改 UI 将结果适当地传播回用户。

我对此很陌生,无法真正掌握这些概念。如果有人可以解释一个会有帮助的例子。

0 投票
0 回答
744 浏览

node.js - 尝试在工作线程中加载 bcrypt 时出现“模块未自行注册”错误

有问题的示例项目:https ://github.com/Suvtruf/bcrypt-child-process-crash-proof

如果你试图在工作线程中加载 bcrypt,你会得到错误:

信息:

  • 节点 v11.10.0
  • bcrypt v3.0.4

我该如何解决?

0 投票
0 回答
53 浏览

java - Swing 动画滞后,SwingWorker 没有帮助?

我正在绘制一个简单的动画,Explosion我一直在尝试使用一个摆动工作线程来完成所有的“繁重计算”;但是,我的动画仍然非常慢,下面的这种用法对于 swingworker 是否正确?或者问题可能出在我的动画课上?

谢谢!

0 投票
0 回答
1397 浏览

node.js - [Nodejs - worker-threads]:主线程是否可以选择等待所有工作线程完成?

有没有一个选项可以让主线程等待所有工作线程完成?
在下面的代码中,mainThread.js 只是简单地创建了 worker。
工人需要很长时间才能执行。
在这种情况下,我们如何指示主线程等待所有线程执行完毕?
类似于 java 中的 thread.join() 的东西。

主线程.js:

workerThread.js:

执行:node --experimental-worker mainThread.js

PS:我们可以尝试通过将其作为 http 服务器实例运行或设置一个具有巨大值的 setTimeout 来使其工作。但是,nodejs 本身是否有一个选项来实现它是个问题。

0 投票
1 回答
192 浏览

c# - 无法使用线程和 XDocument 写入 XML 文件

我无法使用工作线程写入 XML 文件 - 我收到此错误:

System.IO.IOException: '进程无法访问文件'C:\work\FinanceManagement\FinanceManagement\bin\DebugExpense.xml',因为它正被另一个进程使用。

但如果我像它一样使用它WriteToXML(exp);。我认为XDocument.Load(filepath)不是线程安全的。我该如何解决这个问题?