Python のプロット ライブラリで遊んでいて、matplotlib に出くわしました。ただし、スレッドで単純なプロットを作成しているときに問題が発生しました。
次の例では、ダミークラスのplotmeメソッドがスレッドで 2 回連続して実行されますが、2 回目の反復でスタックまたはフリーズします。ほとんどの場合、スレッド自体に関連する明白な何かですが、これまでのところそれを見つけることができませんでした.
import matplotlib.pyplot as plt
from numpy import arange, sin, pi
import threading
class Dummy():
def plotme(self, iteration = 1):
print "%ix plotting... " % iteration,
t = arange(0.0, 2.0, 0.01)
s = sin(2*pi*t)
plt.plot(t, s)
plt.xlabel('time (s)')
plt.ylabel('voltage (mV)')
plt.title('About as simple as it gets, folks')
#savefig("test.png") # irrelevant here
plt.close()
def threadme(self, iteration = 1):
thread_plot = threading.Thread(target=self.plotme,
args=(iteration,))
thread_plot.start()
thread_plot.join()
dummy = Dummy()
dummy.threadme(1)
dummy.threadme(2)