gpt4 book ai didi

python - python中的线程: retrieve return value when using target=

转载 作者:IT王子 更新时间:2023-10-28 23:30:54 24 4
gpt4 key购买 nike

Possible Duplicate:
Return value from thread

我想像这样获得一堆服务器的“空闲内存”:

def get_mem(servername):  
res = os.popen('ssh %s "grep MemFree /proc/meminfo | sed \'s/[^0-9]//g\'"' % servername)
return res.read().strip()

因为这可以线程化,所以我想做这样的事情:

import threading  
thread1 = threading.Thread(target=get_mem, args=("server01", ))
thread1.start()

但是现在:如何访问 get_mem 函数的返回值?我真的需要完全成熟地创建一个 class MemThread(threading.Thread) 并覆盖 __init____run__

最佳答案

您可以创建一个同步的 queue ,将其传递给线程函数并通过将结果推送到队列中来报告,例如:

def get_mem(servername, q):
res = os.popen('ssh %s "grep MemFree /proc/meminfo | sed \'s/[^0-9]//g\'"' % servername)
q.put(res.read().strip())

# ...

import threading, queue
q = queue.Queue()
threading.Thread(target=get_mem, args=("server01", q)).start()
result = q.get()

关于python - python中的线程: retrieve return value when using target=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2577233/

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