gpt4 book ai didi

multithreading - 将多个线程绑定(bind)到多个 CPU?

转载 作者:行者123 更新时间:2023-12-03 13:19:38 31 4
gpt4 key购买 nike

我有多个线程正在访问相同的数据,让它们线程安全太痛苦了。因此,它们现在被迫使用 CPU 亲和性仅在一个 CPU 内核上运行,并且只能同时运行一个线程。

我想知道是否可以将这些线程分组并让它们一起 float 到其他 CPU 内核?这样一来,我就不必为这些线程腾出一个 CPU 内核了。

这是基于 Unix/BSD 平台的

最佳答案

在 Windows 上没有办法做到这一点。我不了解 Unix/Linux,但我怀疑这是否可能。

请注意,这不会使您的系统线程安全。即使在单处理器机器上,线程安全也是一个问题。

i++

不是原子的。两个线程都可以读取 i ,然后计算 i+1 ,然后写 i .这会导致更新丢失。

你需要抛弃这种方法。可能,您应该使用全局锁来保持对共享可变状态的访问。这使得所有这些担忧都消失了,并且实现起来相当简单。

关于multithreading - 将多个线程绑定(bind)到多个 CPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30674349/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com