gpt4 book ai didi

python - python中线程数有限制吗

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:08 28 4
gpt4 key购买 nike

我正在尝试使用所有 CPU,所以我正在使用线程包

但是我使用十个线程中的一个(在 12 线程 cpu 中)得到了相似的时间

我相信 python 有一个限制,但不确定,int top 我只看到 133% 的 CPU。

我放了代码,但我认为这不是软件缺陷。

class normalizeTh(threading.Thread):
def __init__(self, image, idx):
self.image = image
self.output = image
self.idx = idx
threading.Thread.__init__(self)

def run(self):
# print("test")
self.output = exposure.equalize_adapthist(self.image, clip_limit=0.03)
numTheads = 10
def normalizeImgTh(X):
global numThreads
idx = 0
dest = np.empty(X.shape)
ths = []
for img in tqdm(X):
# if we have all threads used, wait until fist is free
if len(ths) >= numThreads:
ths[0].join()
dest[ths[0].idx] = ths[0].output
del ths[0]
nTh = normalizeTh(img, idx)
nTh.start()
ths.append(nTh)
idx += 1
#delete all finished threads... garbage out
for i in range(len(ths),0,-1):
if not ths[i-1].is_alive():
dest[ths[0].idx] = ths[0].output
del ths[i-1]
# wait for all pending threads.
while len(ths) > 0:
ths[0].join()
dest[ths[0].idx] = ths[0].output
return dest


dest=normalizeImgTh(X_train)

最佳答案

与 Python 相比,该限制可能更多地与硬件和操作系统设置有关。如果您将线程用于 CPU 绑定(bind)任务,我认为 Python 不会因为全局解释器锁而有所帮助。

关于python - python中线程数有限制吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44859677/

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