赞
踩
我的建议是使用python
multiprocessing模块而不是线程模块.我已经能够对您的示例代码执行稍微修改,并成功地将matplotlib绘图卸载到子进程,同时主进程中的控制流继续(请参阅下面的代码).
如果您希望子进程进行回传,我建议您阅读多处理文档或有关该主题的大量博客文章.在更大的代码控制流的上下文中与父进程一起(在您的问题中没有完整描述).请注意,多处理具有绕过python global interpreter lock& amp;允许您利用多核计算机体系结构.
#a slight modification of your code using multiprocessing
import matplotlib
matplotlib.use("qt4agg")
import matplotlib.pyplot as plt
#import threading
#let's try using multiprocessing instead of threading module:
import multiprocessing
import time
#we'll keep the same plotting function, except for one change--I'm going to use the multiprocessing module to report the plotting of the graph from the child process (on another core):
def plot_a_graph():
f,a = plt.subplots(1)
line = plt.plot(range(10))
print multiprocessing.current_process().name,"star
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。