Понадобилось вставить в приложение часть использующею multiprocessing и заметно выросло потребление ресурсов, что такое?
Дажe такой пример
#!/usr/bin/python
# coding: utf-8
import gtk
import gobject
import multiprocessing as mpro
import Queue
RUNMULTIPRIOCESS = False
def get_page(que):
que.put("aaaaaa")
class DrawGraph(gtk.DrawingArea):
def __init__(self):
super(DrawGraph, self).__init__()
self.connect("expose_event", self.expose)
self.update()
gobject.timeout_add(120, self.update)
def expose(self, widget, event):
cr = widget.window.cairo_create()
if RUNMULTIPRIOCESS:
que = mpro.Queue()
p = mpro.Process(target=get_page, args=(que,))
p.start()
p.join(0.1)
if p.is_alive():
p.terminate()
print "terminate"
else:
que = Queue.Queue()
get_page(que)
while not que.empty():
print que.get()
return False
def update(self):
if self.window:
alloc = self.get_allocation()
rect = gtk.gdk.Rectangle(alloc.x, alloc.y, alloc.width, alloc.height)
self.window.invalidate_rect(rect, True)
self.window.process_updates(True)
return True
def main():
window = gtk.Window()
window.resize(555, 220)
window.add(DrawGraph())
window.connect("destroy", gtk.main_quit)
window.show_all()
if __name__ == "__main__":
main()
gtk.main()
В чём может быть дело?
И , заодно, возможно ли в нём(multiprocess) установить лимит на число процессов?Что-то не нашел.