sched — Event scheduler, Priorität ist unwirksam

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
JoPi
User
Beiträge: 1
Registriert: Sonntag 17. Februar 2019, 10:29

Hi,
das unten stehend Beispiel ist aus Python » 3.5.10 Documentation » The Python Standard Library » 17. Concurrent Execution »
17.6. sched — Event scheduler

Meine Frage: wenn ich in den Zeilen "s.enter(5,x....") die Prioritäten (x) vertausche, sollte dies in der Ausgabe sichtbar werden.
Aber das tut sich nix. Nur wenn die Reihenfolge der Zeilen im Code vertauscht werden, ändert sich auch die Ausgabe dementsprechend.
Ich benutze Python 3.5.3.

Was ist mein Denkfehlker?

>>> import sched, time
>>> s = sched.scheduler(time.time, time.sleep)
>>> def print_time(a='default'):
... print("From print_time", time.time(), a)
...
>>> def print_some_times():
... print(time.time())
... s.enter(10, 1, print_time)
... s.enter(5, 2, print_time, argument=('positional',))
... s.enter(5, 1, print_time, kwargs={'a': 'keyword'})
... s.run()
... print(time.time())
...
>>> print_some_times()
930343690.257
From print_time 930343695.274 positional
From print_time 930343695.275 keyword
From print_time 930343700.273 default
930343700.276
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Deine Aussage kann ich nicht bestätigen (Python 3.8.2):

Code: Alles auswählen

>>> import sched, time
>>> s = sched.scheduler(time.time, time.sleep)
>>> def print_time(a='default'):
	print("From print_time", time.time(), a)

	
>>> def print_some_times():
	print(time.time())
	s.enter(10, 1, print_time)
	s.enter(5, 2, print_time, argument=('positional',))
	s.enter(5, 1, print_time, kwargs={'a': 'keyword'})
	s.run()
	print(time.time())

	
>>> print_some_times()
1606829624.40767
From print_time 1606829629.44847 keyword
From print_time 1606829629.4640698 positional
From print_time 1606829634.44047 default
1606829634.4872699
>>> def print_some_times():
	print(time.time())
	s.enter(10, 1, print_time)
	s.enter(5, 1, print_time, argument=('positional',))
	s.enter(5, 2, print_time, kwargs={'a': 'keyword'})
	s.run()
	print(time.time())

	
>>> print_some_times()
1606829732.7284706
From print_time 1606829737.7692704 positional
From print_time 1606829737.8472705 keyword
From print_time 1606829742.7768705 default
1606829742.7924705
>>> 
Verwende kein Python 3.5 mehr. Das ist ausgelaufen.
Antworten