问题标签 [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.
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)更有可能对存储的数据进行某种舍入?
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
我在双核系统上对其进行了测试(所以我们有两个并行运行的线程)。但是多线程版本比单线程版本慢(并且显示不稳定的时间,请尝试运行几次)。怎么了?我在哪里犯错了?
一些测试:
单线程:
多线程:
我不明白出了什么问题。
java - 固定线程程序的连接池大小
我有一个固定线程java程序。它是用 Spring Integration 和 ActiveMQ 实现的。这里的固定线程意味着程序有多个线程,但它们在运行时的数量不会改变。现在我需要为其设置连接池大小,所以我应该知道:
- 它有多少个线程
- 它们中的哪一个可以同时连接到数据库。
1.我使用visualVM工具。
- 我可以将 visualVM 用于 2. 吗?如何?
- 有没有人解决这个问题?
c#-4.0 - 单线程 Windows 服务延迟 OnStop
我有一个 Windows 服务(C# 4.0),它从私人消息队列中挑选消息,并根据消息内容为每条消息发送一封或多封电子邮件(通常最多 4 或 5 封)。
消息量很低,因此我避免了复杂性并让服务保持单线程,但电子邮件很重要,因此我需要确保在 SCM 停止命令上,任何进程中的消息/电子邮件在停止完成之前处理/发送。
在 OnStop 中,我正在检查一个表示状态的静态“inProcess”标志,如果已设置,我将调用 ServiceBase.RequestAdditionalTime(120000)。
有2个问题:
- 尽管请求了 2 分钟,但停止命令会立即完成,但有一些电子邮件未发送。
- 即使它有效,我也只是猜测我应该等待多长时间。
在单线程服务中处理此问题的最佳方法是什么?
谢谢你的帮助!
格雷格
asp.net - 使用 [STAOperationBehavior] 属性在 WCF 服务中获取用户信息
我有一个启用 silverlight 的 WCF 服务,其中一种方法绝对需要[STAOperationBehavior] 属性。我需要访问用户的用户详细信息(表单身份验证),但在应用 [STAOperationBehavior] 属性时 Membership.GetUser() 失败。
IE
但
如何在此方法中访问用户信息,或以其他方式向此方法提供用户信息?
multithreading - 创建的线程数为 12,但仍仅在 12 核 CPU 中的一个核上运行
我有一个奇怪的问题。我有一个使用 OpenMP 指令/函数的 Matlab mexfunction。在并行部分开始之前(并行用于...),我使用命令来设置和打印创建的线程数:
问题是,在输出中,它会打印“线程数 = 12”,但随后的并行部分并未在我机器的所有 12 个内核上运行(但仅在 1 个内核上运行)。我的程序是很久以前写的,我之前没有遇到过这样的问题(它在所有 12 个内核上运行)。最近,系统损坏,操作系统(Win 7 Pro)重新安装了 Matlab 2011b(2010b 早期)的更新版本。我还安装了 Visual Studio 2010 Pro。
有什么我遗漏或忽略的吗?
scala - 如何在 Scala 中进行单线程 dll/com 消息传递?(演员)
我正在尝试设置佳能的 EDSDK(用于控制 Eos 相机),它的事件处理程序需要通过User32 Get/DispatchMessages
api 由回调处理(至少在 Windows 中)。
事件调度需要:
- 循环不断地发送消息
- 发生在与 SDK 初始化相同的线程中
这基本上需要一个单线程命令接收器/消息调度程序线程,可以在kritzikratzi 的 edsdk4j 库中看到(线程设置在第 66 行)。
因此,鉴于 Scala 具有非常适合接收消息的参与者(来自多个线程,我最终可能会这样做),对 Canon sdk 和 Windows User32 api 进行单线程访问的最佳方法是什么?
如果这会有所帮助,我完全愿意(并且感兴趣!)akka
udp - netty 的 udp 是在单线程模式下运行的吗?
netty 的 udp 是在单线程模式下运行的吗?
我已经配置了 NioDatagramChannelFactory,如下所示:
新的 NioDatagramChannelFactory(Executors.newFixedThreadPool(4), 4));
但是,当我将代码作为服务器运行时,午餐 20 多个客户端连续向其发送 udp 包时,服务器仍然只使用一个工作线程。
为什么?
javascript - ExtJs:ajax调用中的代码执行顺序是什么?
鉴于 Javascript 是一种单线程语言,ExtJs 中以下代码的执行顺序是什么?
这里函数的执行顺序会是 ACDB 吗?
或者
是否有可能在 FuncC() 或 FuncD() 之前调用 FuncB()?如果是,那么在哪些条件下?
提前感谢您的帮助。
activex - 无法实例化 ActiveX 控件,因为线程位于单线程单元中。将 PC 从睡眠中唤醒后发生
我正在开发一个 VOIP 客户端(窗口形式),它在拨打或接听电话时会打开一个浏览器窗口(ExtendedWebBrowser)。通常它工作正常,但如果计算机进入睡眠模式然后唤醒程序将崩溃并出现以下错误:
我尝试在代码中设置线程,thread.SetApartmentState(ApartmentState.STA)
但我得到了相同的结果。另外,我确实有[STAThread]
之前的main()
功能。现在我想知道它是否与计算机进入睡眠状态时线程未正确终止有关,但我不确定。我的背景是 C++ 和 DirectX,这是我工作过的第一个 Windows 窗体,因此将不胜感激。
跟进:在发现程序在工作线程而不是主线程上启动后,我能够解决这个问题。可以在此处阅读更多信息:Sleep(suspend) 和 Resuming windows form 在工作线程而不是主线程上启动程序