Diese Frage bringt mich dazu, meine Haare herauszuziehen.Wie Python-Generatoren wissen, wer anruft?
, wenn ich tun:
def mygen():
for i in range(100):
yield i
und nennen es von einem tausend Fäden, wie funktioniert weiß der Generator, was für jeden Thread als nächstes senden? Jedes Mal wenn ich es nenne, speichert der Generator eine Tabelle mit dem Zähler und der Anruferreferenz oder etwas in der Art?
Es ist komisch.
Bitte, klar meine Meinung zu diesem.
Ja, die Threads waren nur um das Problem zu veranschaulichen. Bedenkt man, dass Generatoren den Python-Anfängern das falsche Aussehen von Nebenläufigkeit (oder etwas mehr Schwarzmagie als das) geben könnten. –
@PatrickBassut: Nun, Sie können [coroutines] (https://en.wikipedia.org/wiki/Coroutine) mit ihnen simulieren, und mit Korotinen können Sie [grüne Fäden] machen (https://en.wikipedia.org/wiki/Green_threads). – icktoofay