han*_*ast 14 python memory multithreading
可能重复:
从线程返回值
我想得到像这样的一堆服务器的"免费记忆":
def get_mem(servername):
res = os.popen('ssh %s "grep MemFree /proc/meminfo | sed \'s/[^0-9]//g\'"' % servername)
return res.read().strip()
Run Code Online (Sandbox Code Playgroud)
因为这可以是线程我想做类似的事情:
import threading
thread1 = threading.Thread(target=get_mem, args=("server01", ))
thread1.start()
Run Code Online (Sandbox Code Playgroud)
但是现在:如何访问get_mem函数的返回值?我真的需要去一个全功能的方式创建class MemThread(threading.Thread)
和覆盖__init__
和__run__
?
Mar*_*tos 14
您可以创建一个同步队列,将其传递给线程函数,并通过将结果推入队列来报告,例如:
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()
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23141 次 |
最近记录: |