Загрузка...

All threading threads do not start

Thread in Python created by danceont Dec 31, 2024. 189 views

  1. danceont
    danceont Topic starter Dec 31, 2024 6 Aug 23, 2021
    В функции написан регер, соответсвенно должны открываться 5 браузеров. Запускаю код, в консоль выводится, что запущены все потоки из 5, а по факту запускается только два потока.
    [IMG]
     
    1. View previous comments (1)
    2. danceont Topic starter
      maksemen1, в так называемом конфиге название threadings уже занял)
  2. maksemen1
    maksemen1 Dec 31, 2024 мани с гейма https://zelenka.guru/threads/5792572/ 9319 Jul 28, 2018
    uncpfiae ты у нас по threading
     
    1. maksemen1
      maksemen1, ну хотя бы смешную картинку скинул
  3. MALWARE
    MALWARE Dec 31, 2024 мяукаю 12,034 Mar 12, 2021
    Python
    Lock = threading.Lock()
    succes_threads = 0
    all_threads = []

    while succes_threads != executions:
    thread = threading.Thread(target=tools, args=(Lock,))
    all_threads.append(thread)
    thread.start()
    print(f'Поток {len(all_threads)} запущен')
    succes_threads += 1

    for thread in all_threads:
    thread.join()
    print(f'Поток {all_threads.index(thread) + 1} завершил работу')
    У тебя создается группа потоков и ожидается их завершения через join() прежде чем создавать следующую группу, из-за чего succes_threads увеличивается только после завершения всех потоков текущей итерации, а не после запуска каждого отдельного потока
     
    1. View previous comments (6)
    2. danceont Topic starter
      MALWARE, а ещё вопрос, как изменять количество потоков? У меня есть переменная threads в которую я ввожу количество потоков, а в исправленном тобою коде всегда 5 потоков
    3. MALWARE
      danceont,
      Python
      Lock = threading.Lock()
      succes_threads = 0
      all_threads = []

      while succes_threads != executions:
      # Создаем threads потоков
      for i in range(threads):
      thread = threading.Thread(target=tools, args=(Lock,))
      all_threads.append(thread)
      thread.start()
      print(f'Поток {len(all_threads)} запущен')
      succes_threads += 1
      if succes_threads == executions:
      break

      for thread in all_threads:
      thread.join()
      print(f'Поток {all_threads.index(thread) + 1} завершил работу')
    4. danceont Topic starter
      MALWARE, по итогу все равно создаётся 5 потоков независимо от числа в цикле
    5. View the next comments (2)
Top
Loading...