Il est préférable de toujours vérifier auprès de la bibliothèque que vous utilisez si elle prend en charge l'utilisation dans un non-bloquant .
Mais si vous voulez une solution générique, ou si il n'y a pas d'autre moyen, vous pouvez exécuter tout ce qui bloque dans un processus séparés à l'aide de la multprocessing
module inclus dans python. Le calcul de continuer:
from multiprocessing import Process
from matplotlib.pyplot import plot, show
def plot_graph(*args):
for data in args:
plot(data)
show()
p = Process(target=plot_graph, args=([1, 2, 3],))
p.start()
print 'yay'
print 'computation continues...'
print 'that rocks.'
print 'Now lets wait for the graph be closed to continue...:'
p.join()
Qui a la surcharge de lancer un nouveau processus, et il est parfois plus difficile à déboguer sur des scénarios complexes, donc je préfère l'autre solution (à l'aide d' matplotlib
's non bloquantes appels d'API)