python / python/cpython

threading.Thread: Add start=False parameter to start immediately the thread

Aberta
#155,334 2 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

stdlib type-feature
Linguagem predominante
Python
Estrelas
77.2k
Forks
35.9k
Métricas de merge de PRs
Métricas de PR pendentes

Descrição

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

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece revisando o construtor de threading.Thread e o comportamento de start() e join(), depois inspecione o trabalho vinculado em gh-155335. Determine a semântica da API e as implicações de compatibilidade de iniciar durante a construção; considera-se concluído quando o uso proposto funcionar corretamente sem alterar o comportamento existente de Thread.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
python
Domínio
operating-systems
Tipo de issue
Funcionalidade
Dificuldade
5/5
Tempo estimado
Mais de uma semana
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
25/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.