Portál AbcLinuxu, 11. května 2025 04:27
Řešení dotazu:
to celkem resi multithread ...., a s tim ze bezi v kazde chvili jen jden thread neni moc pravdive ....
ono , vice threadu .. vice problemu ... kdekoliv , od urciteho okamziku je jejich prinos zaporny .. a lepe z thoho prece jen vychazi multiprocess
viz : http://wiki.python.org/moin/GlobalInterpreterLock
a http://docs.python.org/py3k/library/multiprocessing.html
na napr pro python2 je zajimava knihovna "pp"
to ze thready jsou blbost tvrdili ti co vytvorili unix uz 30 let pred Pythonem ......
#!/usr/bin/env python #-*- coding: utf-8 -*- import pygtk pygtk.require("2.0") import gtk import gobject def kazdych_5_sekund(): print "Toto je po 5 vterinach!!!" return True # Toto způsobí že se toto bude opakovat každých 5s, False - provede se pouze jednou def button_clicked(widget,data): print "Button clicknut!!!" # Vytvoříme nové okno window = gtk.Window() # Tady spojíme událost "delete-event" (zavření okna) # s ukončením programu pomoí zavolání gtk.main_quit, # která zapříčiní ukončení hlavní programové smyčky gtk.main() window.connect("delete-event", gtk.main_quit) window.set_border_width(10) window.set_title("Timer 5 sekund") # Vytvoříme nový popisek s popisem "Ahoj světe!!!" button = gtk.Button("Ahoj světe!!!") button.connect("clicked", button_clicked, None) #label = gtk.Label("Ahoj světe!!!") # A popisek připojíme do hlavního okna, které funguje jako kontejner window.add(button) # Tímto prohlásíme okno za připravené ke zobrazení window.resize(200,80) window.show_all() # Tímto si vyrobíme "timer" po 5 sekundách # timer_id lze využít pro "vypnutí" timeru pomocí gobject.source_remove(timer_id) timer_id = gobject.timeout_add(5000, kazdych_5_sekund) # A spustíme hlavní programovou smyčku gtk.main()
#!/usr/bin/env python #-*- coding: utf-8 -*- import pygtk pygtk.require("2.0") import gtk import gobject def ukoncit(widget, data, timer_id): gobject.source_remove(timer_id) gtk.main_quit() def kazdych_5_sekund(): print "Toto je po 5 vterinach!!!" return True # Toto způsobí že se toto bude opakovat každých 5s, False - provede se pouze jednou def button_clicked(widget,data): print "Button clicknut!!!" # Tímto si vyrobíme "timer" po 5 sekundách # timer_id lze využít pro "vypnutí" timeru pomocí gobject.source_remove(timer_id) timer_id = gobject.timeout_add(5000, kazdych_5_sekund) # Vytvoříme nové okno window = gtk.Window() # Tady spojíme událost "delete-event" (zavření okna) # s funkcí ukoncit() # která zapříčiní ukončení hlavní programové smyčky gtk.main() window.connect("delete-event", ukoncit, timer_id) window.set_border_width(10) window.set_title("Timer 5 sekund") # Vytvoříme nový popisek s popisem "Ahoj světe!!!" button = gtk.Button("Ahoj světe!!!") button.connect("clicked", button_clicked, None) #label = gtk.Label("Ahoj světe!!!") # A popisek připojíme do hlavního okna, které funguje jako kontejner window.add(button) # Tímto prohlásíme okno za připravené ke zobrazení window.resize(200,80) window.show_all() # A spustíme hlavní programovou smyčku gtk.main()
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.