问题标签 [multithreading]

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 投票
3 回答
7717 浏览

c# - 尝试重新启动线程时发生 ThreadStateException

尝试重新启动线程时,有时我会收到 System.Threading.ThreadStateException。有问题的代码如下:

所以有两个问题——这是正确的做事方式吗,有没有办法防止错误发生?

0 投票
1 回答
2077 浏览

.net - Interlocked.Exchange,但不是布尔值?

Interlocked.Exchange布尔值 是否有等价物?

例如返回前一个值且不需要锁的值的原子交换?

0 投票
13 回答
4060 浏览

multithreading - 其他语言的 Erlang 风格并发

其他编程语言有哪些库来提供 Erlang 风格的并发模型(进程、邮箱、模式匹配接收等)?

注意:我对旨在类似于 Erlang 的东西特别感兴趣,而不仅仅是任何线程或队列库。

0 投票
2 回答
2332 浏览

multithreading - 共享点 COMException 0x81020037

我正在开发一个支持在单个操作中导入多个文档的 SharePoint 应用程序。我还有一个 ItemAdded 事件处理程序,它执行项目元数据的一些基本维护。导入的文档和手动创建的文档都会触发此事件。难题的最后一块是我实现的批处理操作功能,以启动工作流并更新另一个元数据字段。

我可以通过提取 SPListItem 的文件数据来导致 COMException 0x81020037。此文件只是一个 InfoPath 表单/XML 文档。我能够修改 XML 并成功地将其推回 SPListItem。当我之后立即启动自定义功能并修改元数据时,它偶尔会导致 COM 错误。

该错误消息基本上表明该文件已被另一个线程修改。似乎 ItemAdded 事件仍在将文件写回数据库,而自定义功能正在更改元数据。我尝试过延迟和错误捕获循环,以尝试检测 SPListItem 可以安全修改但收效甚微。

有没有办法判断另一个线程是否锁定了文档?

0 投票
10 回答
119919 浏览

c# - 调用跨线程事件的最简洁方式

我发现.NET 事件模型是这样的,我经常会在一个线程上引发一个事件并在另一个线程上监听它。我想知道将事件从后台线程编组到我的 UI 线程的最干净的方法是什么。

根据社区的建议,我使用了这个:

0 投票
6 回答
21526 浏览

c# - 如何中止使用 ThreadPool.QueueUserWorkItem 创建的线程

有没有办法中止使用 QueueUserWorkItem 创建的线程?

或者也许我不需要?如果主应用程序退出会发生什么?从它创建的所有线程都会自动中止吗?

0 投票
10 回答
616 浏览

multithreading - 哪个是记录日志的更好方法 - 文件或数据库?

好的,这是场景。我有一个实用程序可以处理大量记录,并相应地将信息输入数据库。

它以多线程批处理的形式处理这些记录。每个这样的批次都写入同一个日志文件,以便为每个记录创建工作流跟踪。潜在地,我们可以在一天内进行接近一百万次的日志写入。

是否应该将此日志写入驻留在另一台服务器上的数据库中?注意事项:

  1. 多个线程写入同一个日志文件的明显缺点是日志消息相互打乱。在数据库中,它们可以按批次 id 分组。
  2. 性能——这会进一步减慢批处理的速度?写入本地文件或将日志数据发送到同一网络上另一台服务器上的数据库。从理论上讲,日志文件更快,但这里有问题吗?

两种方法都可以进行优化吗?

谢谢。

0 投票
8 回答
4538 浏览

.net - 线程未从 Thread.Sleep() 唤醒

我们有一个用 C# 编写的 Windows 服务。该服务产生一个执行此操作的线程:

几次之后,当数据库消失后,我们将 Thread.Sleep 放入,我们回到充满数据库连接错误的 3Gb 日志文件。

这几个月来一直运行良好,但最近我们看到 log.Error() 语句记录了“System.InvalidOperationException:此 SqlTransaction 已完成;它不再可用”异常然后再也不会回来的一些实例. 该服务可以运行数天,但不会记录更多内容。

做了一些阅读后,我知道 Thread.Sleep 并不理想,但为什么它永远不会回来?

0 投票
14 回答
153993 浏览

javascript - JavaScript 和线程

有没有办法在 JavaScript 中进行多线程处理?

0 投票
7 回答
43190 浏览

python - 线程在 Python 中是如何工作的,Python 线程特有的常见陷阱是什么?

我一直在试图了解线程在 Python 中是如何工作的,而且很难找到关于它们如何操作的好信息。我可能只是错过了一个链接或其他东西,但似乎官方文档在这个主题上不是很详尽,而且我还没有找到一个好的文章。

据我所知,一次只能运行一个线程,并且活动线程每 10 条左右指令切换一次?

哪里有好的解释,或者你能提供一个吗?了解在 Python 中使用线程时遇到的常见问题也是非常好的。