threading.Thread: Add start=False parameter to start immediately the thread
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Python
- Sterne
- 77.2k
- Forks
- 35.9k
- PR-Merge-Kennzahlen
- PR-Kennzahlen ausstehend
Beschreibung
It's common to create multiple threads, start them, and then join them. Example:
threads = [
threading.Thread(target=run_a),
threading.Thread(target=run_b),
]
for thread in threads:
thread.start()
...
for thread in threads:
thread.join()
I propose adding a start=False parameter to threading.Thread to start immediately the thread. The example would become:
threads = [
threading.Thread(target=run_a, start=True),
threading.Thread(target=run_b, start=True),
]
...
for thread in threads:
thread.join()
The new parameter would solve the old issue gh-93293 which requests to return self in start(). The issue example:
threads = []
for i in range(10):
thread = threading.Thread(target=fn, args=(i,))
thread.start()
threads.append(thread)
for t in threads:
t.join()
would become:
threads = [threading.Thread(target=fn, args=(i,), start=True) for i in range(10)]
for t in threads:
t.join()
Linked PRs
- gh-155335
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginnen Sie mit der Überprüfung des Konstruktors von threading.Thread sowie seines Verhaltens bei start() und join(), und untersuchen Sie anschließend die verknüpfte Arbeit in gh-155335. Bestimmen Sie die API-Semantik und die Kompatibilitätsauswirkungen eines Starts während der Konstruktion; als erledigt gilt die Aufgabe, wenn die vorgeschlagene Verwendung korrekt funktioniert, ohne das bestehende Verhalten von Thread zu ändern.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- operating-systems
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 25/100