Python线程的重复

2024-04-19 08:51:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在4核上运行8个线程。你知道吗

我通过设置affinity将两个线程一组绑定到每个核心。你知道吗

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

我可以轮询线程以检查它们是否正在运行。我还能够精确地收集事件开始的时间(e)nd和执行事件的时间(p)。 我知道集合中的两个线程中哪一个是死的(我的意思是,执行时间结束了)。可能存在线程0或线程1彼此较长的情况。你知道吗

在这两种情况下,即当线程0或线程1较长时,我想重复较短的线程,直到较大的线程结束。你知道吗

以前,我在整个系统中每个核心只有两个线程。我以前经常做手工检查,比如。。如果任何一根线都死了。。一直跑到另一个也死了为止。你知道吗

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

如果我想为每个核心扩展两个线程/两个以上的线程,那么每个核心都有两个/两个以上的线程。我们怎么能这样呢?你知道吗

I need ideas so that we can discuss on that.

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

TED_TIME_DIFF = 100ms

但是线程会话的时间周期不断增加(从收集次数的计算(c)中可以看出)。假设采集时间为1ms 例如,它可以TALKS_TIME_DIFF = 110ms下一毫秒它是111毫秒。。等等

我们可以一直重复ted,直到会谈时间差停止。你知道吗

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

如果你能帮我,我会很高兴的。你知道吗


Tags: 数据core核心thattime系统时间事件
1条回答
网友
1楼 · 发布于 2024-04-19 08:51:29

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

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

标准Python不会同时在多个线程中运行Python代码。你知道吗

相关问题 更多 >