问题标签 [single-threaded]

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 回答
358 浏览

java - Java 是否对单线程应用程序强制执行 as-if-serial

我在单个线程上运行一些 JUnit 测试,它们以不确定的方式失败。有人告诉我,优化的 JVM(Oracle Hotspot 64 位 17.1-b03)正在执行指令以提高速度。我很难相信 java 规范会允许这样做,但我找不到具体的参考。

Wikipedia 声明单个线程必须强制执行线程内如同串行,因此我不必担心执行顺序与我所写的不同。 http://en.wikipedia.org/wiki/Java_Memory_Model#The_memory_model

示例代码:

运行此测试代码时,它具有完全不确定的行为,有时它通过,有时如果在第一个断言上失败,有时它在第二个断言上失败。这些值总是在一两毫秒之内,所以并不是说持久性完全失败了。添加一个 Thread.sleep(2); 在每个语句之间确实减少了测试失败的次数,但并没有完全消除失败。

这可能是 JVM 的错误,还是数据库(MsSql)更有可能对存储的数据进行某种舍入?

0 投票
4 回答
5536 浏览

c++ - 为什么这个 OpenMP 程序比单线程慢?

请看这段代码。

单线程程序: http: //pastebin.com/KAx4RmSJ。编译:

g++ -lrt -O2 main.cpp -o nnlv2

多线程与 openMP:http ://pastebin.com/fbe4gZSn 编译:

g++ -lrt -fopenmp -O2 main_openmp.cpp -o nnlv2_openmp

我在双核系统上对其进行了测试(所以我们有两个并行运行的线程)。但是多线程版本比单线程版本慢(并且显示不稳定的时间,请尝试运行几次)。怎么了?我在哪里犯错了?

一些测试:

单线程:

多线程:

我不明白出了什么问题。

0 投票
0 回答
390 浏览

java - 固定线程程序的连接池大小

我有一个固定线程java程序。它是用 Spring Integration 和 ActiveMQ 实现的。这里的固定线程意味着程序有多个线程,但它们在运行时的数量不会改变。现在我需要为其设置连接池大小,所以我应该知道:

  1. 它有多少个线程
  2. 它们中的哪一个可以同时连接到数据库。

1.我使用visualVM工具。

  • 我可以将 visualVM 用于 2. 吗?如何?
  • 有没有人解决这个问题?
0 投票
1 回答
1353 浏览

c#-4.0 - 单线程 Windows 服务延迟 OnStop

我有一个 Windows 服务(C# 4.0),它从私人消息队列中挑选消息,并根据消息内容为每条消息发送一封或多封电子邮件(通常最多 4 或 5 封)。

消息量很低,因此我避免了复杂性并让服务保持单线程,但电子邮件很重要,因此我需要确保在 SCM 停止命令上,任何进程中的消息/电子邮件在停止完成之前处理/发送。

在 OnStop 中,我正在检查一个表示状态的静态“inProcess”标志,如果已设置,我将调用 ServiceBase.RequestAdditionalTime(120000)。

有2个问题:

  1. 尽管请求了 2 分钟,但停止命令会立即完成,但有一些电子邮件未发送。
  2. 即使它有效,我也只是猜测我应该等待多长时间。

在单线程服务中处理此问题的最佳方法是什么?

谢谢你的帮助!

格雷格

0 投票
1 回答
509 浏览

asp.net - 使用 [STAOperationBehavior] 属性在 WCF 服务中获取用户信息

我有一个启用 silverlight 的 WCF 服务,其中一种方法绝对需要[STAOperationBehavior] 属性。我需要访问用户的用户详细信息(表单身份验证),但在应用 [STAOperationBehavior] 属性时 Membership.GetUser() 失败。

IE

如何在此方法中访问用户信息,或以其他方式向此方法提供用户信息?

0 投票
1 回答
349 浏览

multithreading - 创建的线程数为 12,但仍仅在 12 核 CPU 中的一个核上运行

我有一个奇怪的问题。我有一个使用 OpenMP 指令/函数的 Matlab mexfunction。在并行部分开始之前(并行用于...),我使用命令来设置和打印创建的线程数:



问题是,在输出中,它会打印“线程数 = 12”,但随后的并行部分并未在我机器的所有 12 个内核上运行(但仅在 1 个内核上运行)。我的程序是很久以前写的,我之前没有遇到过这样的问题(它在所有 12 个内核上运行)。最近,系统损坏,操作系统(Win 7 Pro)重新安装了 Matlab 2011b(2010b 早期)的更新版本。我还安装了 Visual Studio 2010 Pro。

有什么我遗漏或忽略的吗?

0 投票
0 回答
146 浏览

scala - 如何在 Scala 中进行单线程 dll/com 消息传递?(演员)

我正在尝试设置佳能的 EDSDK(用于控制 Eos 相机),它的事件处理程序需要通过User32 Get/DispatchMessagesapi 由回调处理(至少在 Windows 中)。

事件调度需要:

  • 循环不断地发送消息
  • 发生在与 SDK 初始化相同的线程中

这基本上需要一个单线程命令接收器/消息调度程序线程,可以在kritzikratzi 的 edsdk4j 库中看到(线程设置在第 66 行)。

因此,鉴于 Scala 具有非常适合接收消息的参与者(来自多个线程,我最终可能会这样做),对 Canon sdk 和 Windows User32 api 进行单线程访问的最佳方法是什么?

如果这会有所帮助,我完全愿意(并且感兴趣!)akka

0 投票
1 回答
607 浏览

udp - netty 的 udp 是在单线程模式下运行的吗?

netty 的 udp 是在单线程模式下运行的吗?

我已经配置了 NioDatagramChannelFactory,如下所示:

新的 NioDatagramChannelFactory(Executors.newFixedThreadPool(4), 4));

但是,当我将代码作为服务器运行时,午餐 20 多个客户端连续向其发送 udp 包时,服务器仍然只使用一个工作线程。

为什么?

0 投票
3 回答
1413 浏览

javascript - ExtJs:ajax调用中的代码执行顺序是什么?

鉴于 Javascript 是一种单线程语言,ExtJs 中以下代码的执行顺序是什么?

这里函数的执行顺序会是 ACDB 吗?

或者

是否有可能在 FuncC() 或 FuncD() 之前调用 FuncB()?如果是,那么在哪些条件下?

提前感谢您的帮助。

0 投票
1 回答
8646 浏览

activex - 无法实例化 ActiveX 控件,因为线程位于单线程单元中。将 PC 从睡眠中唤醒后发生

我正在开发一个 VOIP 客户端(窗口形式),它在拨打或接听电话时会打开一个浏览器窗口(ExtendedWebBrowser)。通常它工作正常,但如果计算机进入睡眠模式然后唤醒程序将崩溃并出现以下错误:

我尝试在代码中设置线程,thread.SetApartmentState(ApartmentState.STA)但我得到了相同的结果。另外,我确实有[STAThread]之前的main()功能。现在我想知道它是否与计算机进入睡眠状态时线程未正确终止有关,但我不确定。我的背景是 C++ 和 DirectX,这是我工作过的第一个 Windows 窗体,因此将不胜感激。

跟进:在发现程序在工作线程而不是主线程上启动后,我能够解决这个问题。可以在此处阅读更多信息:Sleep(suspend) 和 Resuming windows form 在工作线程而不是主线程上启动程序