Я хочу сделать что-то для элемента в том же списке, используя многопоточность в Python.Например, загрузите 3 файла в список одновременно.
Вот мой код:
import threading
import time
thread_count = 3
l = [x for x in range(0, 10)]
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
def do_sth(x):
print('%s\n' % x)
time.sleep(1)
def worker():
for x in l:
l.remove(x)
do_sth(x)
threads = []
for x in range(0, thread_count):
t = threading.Thread(target=worker)
threads.append(t)
for t in threads:
t.start()
print('Started: %s' % t)
Но в выводе всегда что-то пропадает:
Started: <Thread(Thread-6, started 5924)>
0
1
Started: <Thread(Thread-7, started 2860)>
2
Started: <Thread(Thread-8, started 15648)>
4
5
6
8
9