问题标签 [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.
multithreading - 可以让多个线程将相同的值写入相同的变量吗?
我了解竞争条件以及多个线程如何访问同一个变量,一个人所做的更新可以被其他人忽略和覆盖,但是如果每个线程都将相同的值(不是不同的值)写入同一个变量怎么办?甚至这会导致问题吗?这段代码可以:
GlobalVar.property = 11;
(假设该属性永远不会被分配除 11 以外的任何值),如果多个线程同时执行它会导致问题吗?
c# - 什么时候应该在 C# 中使用 volatile 关键字?
谁能很好地解释 C# 中的 volatile 关键字?它解决了哪些问题,没有解决哪些问题?在哪些情况下它会节省我使用锁定的时间?
c - 非阻塞 pthread_join
我正在编写多线程服务器的关闭代码。如果一切顺利,所有线程都应该自行退出,但是线程卡住的可能性很小。在这种情况下,使用非阻塞连接会很方便所以我可以做到。
有没有办法进行非阻塞 pthread_join?某种定时加入也会很好。
像这样的东西:
我可以想到更多非阻塞连接有用的情况。
似乎没有这样的功能,所以我已经编写了一个解决方法,但这并不像我想要的那么简单。
algorithm - 证明多线程算法的正确性
多线程算法特别难以设计/调试/证明。Dekker 算法是一个很好的例子,说明了设计一个正确的同步算法是多么困难。Tanenbaum 的现代操作系统在其 IPC 部分中充满了示例。有没有人对此有很好的参考(书籍,文章)?谢谢!
java - 从syncExec返回变量的最佳方式是什么?
在我的 SWT Java 应用程序中,我经常希望从 Display.syncExec() 调用中返回信息。到目前为止,我发现的最佳方法是:
我认为这是允许的,因为 ArrayList 是线程安全的,但是我应该使用更好的容器还是更简单的方法?
multithreading - 解释 Windows Minidump 中的堆栈
作为一个刚刚开始学习复杂的计算机调试的人,对于我的生活,我无法理解如何阅读 Windbg 中转储的堆栈文本。我不知道从哪里开始如何解释它们或如何去做。任何人都可以为这个可怜的灵魂提供方向吗?
即(实际上我手头上唯一的垃圾场)
我知道问题与 Nvidia 显示驱动程序有关,但我想知道的是如何实际读取堆栈(例如,什么是 b69dd8f4?):-[
c - 如何保证 64 位写入是原子的?
当在基于 Intel x86 的平台(特别是基于 Intel 的 Mac 使用 Intel 编译器运行 MacOSX 10.4)上用 C 编程时,何时可以保证 64 位写入是原子的?例如:
如果在对 y 的第一次赋值完成执行后另一个线程正在检查 y 的值,我想确保它看到值 0xfedcba87654321 或值 0x12345678abcdef,而不是它们的混合。我想在没有任何锁定的情况下执行此操作,并且如果可能的话,无需任何额外的代码。我希望,在能够支持 64 位代码(MacOSX 10.4)的操作系统上使用 64 位编译器(64 位 Intel 编译器)时,这些 64 位写入将是原子的。这总是正确的吗?
multithreading - 在 Delphi 中,TDataSet 线程安全吗?
我希望能够在它自己的线程中异步打开一个 TDataSet,以便主 VCL 线程可以继续运行直到完成,然后让主 VCL 线程从该 TDataSet 读取。我做了一些实验并且遇到了一些非常奇怪的情况,所以我想知道是否有人以前做过。
我见过一些示例应用程序,其中 TDataSet 在单独的线程中创建,它被打开,然后从中读取数据,但这都是在单独的线程中完成的。我想知道在另一个线程打开数据源之后从主 VCL 线程读取 TDataSet 是否安全。
我在 Delphi 7 中进行 Win32 编程,使用来自DAC for MySQL的 TmySQLQuery作为我的 TDataSet 后代。
java - ExecutorService 中的活动线程
任何想法如何确定当前运行的活动线程数ExecutorService
?