Portál AbcLinuxu, 10. listopadu 2025 07:13
Ř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"
Kdyby to byl blbej jazyk, tak mě to tak nevadí. Numpy a podobný výpočty do JPythonu bez GILu bohužel nepřeklopím.
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.