gpt4 book ai didi

python - Python中线程的重申

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:05:10 24 4
gpt4 key购买 nike

我正在尝试在 4 个内核上运行总共 8 个线程。

我通过设置关联将 2 个一组的线程绑定(bind)到每个核心。

0,1 -> core A
2,3 -> core B
4,5 -> core C
6,7 -> core D

我能够轮询线程以检查它们是否正在运行。我还能够收集它开始的时间、结束的时间以及准确收集执行事件的时间。我知道集合中的两个线程中的哪一个已经死了(死了,我的意思是,执行时间结束了)。可能会出现线程 0 或线程 1 比彼此长的情况。

在任何一种情况下,即当线程 0 或线程 1 较长时,我想重复较短的线程,直到较大的线程结束。

以前,当我在整个系统上每个内核只有两个线程时。我过去常常进行手动检查,比如......如果其中一个线程死了......继续运行它直到另一个线程也死了。

但这会带来很多冗余和效率损失(因为我使用的是 IF 语句)

如果我想将它扩展为每个内核两个线程/两个以上线程,当每个内核有两个/两个以上时。我们怎么能这样?

I need ideas so that we can discuss on that.

这是我得到的:以“ted”和“talks”为例,作为核心 A 上的两个线程。假设 ted 是两个线程中较短的一个。我们拥有的数据:开始时间、结束时间和数据收集时间。我们可以计算线程 ted 结束-开始与线程对话之间的时间差。

TED_TIME_DIFF = 100ms

但是线程对话的时间段不断增加(从收集的时间(c)的计算中检查)。假设采集时间为1ms例如它可以 TALKS_TIME_DIFF = 110ms 下一个 ms 是 111ms.. 等等

我们可以不断重申 ted,直到谈判时间差异停滞不前。

Scripting language: Python 2.7
OS: Linux
Kernel:2.6.xx
using SPEC CPU BENCHMARK threads - if that is any importance

如果你能帮助我,我会很高兴。

最佳答案

I am trying run a total of 8 threads on 4 cores.*

除非您 (a) 生成多个进程(而不是线程)或 (b) 使用没有 Global Interpreter Lock 的替代解释器,否则您永远不会使用 Python 在超过 1 个核心上运行.

标准的Python不会在多个线程中同时运行python代码。

关于python - Python中线程的重申,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14449898/

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