Учитывая, что вы ничего не упомянули о дисках, я собираюсь предположить, что они не очень ограничены вводом-выводом (хотя все еще возможно).Вы используете несколько потоков / процессов еще?Если нет, то это определенно ваша проблема.
Я бы, вероятно, посмотрел на Pythons Библиотека потоков и из-за цикла для создания данных, возможно, библиотека пула потоков .Вам просто нужно, чтобы все ваши потоки запускали эту функцию rand одновременно.
EDIT: Я забыл упомянуть.Если вы откроете Диспетчер задач / Системный монитор, вы сможете увидеть нагрузку на процессор / поток.Если в один момент времени только один максимальный, вы не одновременно.
Пример: Я написал быстрый пример, чтобы помочь с пулом потоков.Ваш список из 10000 пунктов с 10 столбцами даже не был заметен на моем i7.Я увеличил столбцы до 10000, и он использовал 4 ГБ ОЗУ и, вероятно, 30 секунд 100% ЦП при 3,4 ГГц.
from multiprocessing import Pool, Array
import random
def thread_function(_):
"""Return a random number."""
l = []
for _ in range(10000):
l.append(random.randint(0, 10000))
return l
if __name__ == '__main__':
rand_list = Array('i', range(10000))
with Pool() as pool:
rand_list = pool.map(thread_function, rand_list)
print(len(rand_list))