Questions tagged [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.
为什么这段代码会产生竞争条件?
这是我第一次尝试使用std::future
.
我要同时解析三个不同的文件。三个功能分别做到这一点。称为和。parseSentences
_ 它们中的每一个都使用一个非常简单的 lambda 函数在单独的线程中启动: ,其中是一个静态变量,函数是我之前命名的三个函数之一。parseTags
parseLinks
std::async
[]() { parser->function(); }
parser
现在,当我在 gdb 中运行我的程序时,在破坏一个std::future
局部变量时会发生分段错误。那时有 2 个线程正在运行。线程#1 的调用堆栈在这里。线程#2 的调用堆栈在这里。
请注意,this
第一个调用堆栈中的指针为空,导致分段错误。
如果有人有线索,我将不胜感激。
必须使用线程睡眠程序来更新文档
我有一个需要使用 Java 运行的 Word 宏。所以我使用VB脚本来运行宏,如下所示。它在 Word 文档中进行了一些编辑,我使用该“test.doc”读取为InputStream
. 但是我必须让主线程休眠一段时间才能在“test.doc”文件中获取文档更改(从文档到文档的线程休眠时间所需的时间不同)。如代码所示。我有点困惑,因为我等待该过程结束。而且文件还没有更新?有人可以在这里帮助我吗?
java线程简单愚蠢的程序
我希望有人会帮助我。我一直在尝试用 java Threads 做一个红绿灯。有两个圈。每个圆圈都是一盏灯(线)。我希望每盏灯工作 x 毫秒,然后关闭并让另一盏灯工作(一次又一次..)
当 lock 被声明为类的属性时:
我相信我的问题是通过等待/通知方法发生的。请帮我解决这个问题!
System.Configuration 的线程安全使用
是否有一种简单的方法可以通过线程安全的接口访问基于 System.Configuration 的自定义配置数据,而不需要每个执行上下文加载/重新加载配置信息,这将是计算上的负担?
System.Configuration 类与 Microsoft .Net 库文档中的大多数(全部?)其他类一样,都使用以下线程安全信息进行注释:
此类型的任何公共静态(在 Visual Basic 中为 Shared)成员都是线程安全的。不保证任何实例成员都是线程安全的。
根据我的阅读,从和其他类似方法(例如)ConfigurationSection
返回的对象不能被假定为线程安全的,因此不应被多个执行上下文使用。这禁止将 a 存储在原本是线程安全的单例中,因为虽然对部分对象的访问可能是安全的,但对象本身的成员并不安全。ConfigurationManager.GetSection(string)
OpenExeConfiguration(string exePath).GetSection(string)
ConfigurationSection
然而,多次调用GetSection
可能需要重新解析配置文件并分配ConfigurationSection
具有高开销的新实例,考虑到配置在初始化后不太可能发生变化。此外,将配置数据复制到另一个已成为线程安全的对象似乎首先破坏了使用内置配置包的主要好处之一(无需太多样板即可轻松访问类型转换和验证的配置信息代码)。
那么,有没有一种方法可以System.Configuration
以线程安全的方式使用,而不需要过度解析和分配配置部分?ConfigurationSection
即使您通过接口访问它,实现您自己的功能是否使您免于 Microsoft 提供的缺乏保证(如果是这样,当需要访问 base的索引器System.Configuration
时,您将如何实现它是线程安全的?ConfigurationSection
访问配置的数据)?
memset 可以在 4 个内核上并行化吗?
我不确定。我可以在四个核心上编写一个大的 memset(例如 10 MB)来获得加速吗?
这种 ram-chip 并行化是否可能,以及触发其他线程的时间成本有多大——是超过一毫秒还是更少?
XNA Xbox 360 内容管理器线程冻结绘制线程
我目前有一款游戏,它可以使用大于 1MB 的大图像作为背景。我确切地知道这个转换应该在什么时候发生,所以我创建了一个加载器类来处理在后台加载这些大图像,但是当我加载图像时,它仍然会冻结发生绘图的主线程。由于这段代码在 360 上运行,我将线程移动到第 4 个硬件线程,但这似乎没有帮助。下面是我正在使用的课程。任何关于为什么我的新内容管理器应该在它自己的线程中中断我的主线程中的绘制的任何想法都将不胜感激。
Java Thread:解释为什么不总是打印变量的最新值
我有这段代码使用Java Thread:
运行时,结果是:
我知道运行的线程不遵循它的顺序。但是,我不明白的是:为什么主线程打印 1 (它打印变量 i),当变量 i 达到 12 时?(因为子线程已打印到 12)。
谢谢 :)
集合上的线程安全迭代
我们都知道,当使用Collections.synchronizedXXX
(例如synchronizedSet()
)时,我们会获得底层集合的同步“视图”。
但是,这些包装器生成方法的文档指出,当使用迭代器迭代集合时,我们必须显式地在集合上同步。
你选择哪个选项来解决这个问题?
我只能看到以下方法:
- 按照文档所述进行操作:在集合上同步
- 在调用之前克隆集合
iterator()
- 使用迭代器是线程安全的集合(我只知道
CopyOnWriteArrayList
/Set)
作为一个额外的问题:使用同步视图时 - 使用 foreach/Iterable 线程安全吗?
Unix 上的 C++:线程库的区别?
使用 boost:thread、Posix Thread 库和新的 C++11 多线程库有什么区别,尤其是在性能方面?
多线程批处理(SELECT 和 UPDATE)[.NET][DB2]
我有以下要求 -
我必须
1.query 一个表并选择大约 20k 行匹配一些条件。
2.处理这些记录并更改一些字段。
3.用改变的记录更新同一张表。
如何使用多线程批处理 SELECT、PROCESS 和 UPDATE 记录?有什么最佳实践吗?使用的最佳线程数是多少?任何替代方法?
!要使用的行相互独立