Чому мультитрейдинг не робить мій код Python швидшим? Як я можу це виправити.
Python обмежує доступ до перекладача за допомогою Global Interpreter Lock, відомого як GIL, для внутрішніх вимог безпеки ниток. На жаль, це рішення щодо дизайну обмежує тільки те, що дозволяє одному нитку інтерпретувати код Python одночасно, навіть на машині з можливістю запускати кілька ниток разом.

Якщо ви хочете запустити код Python на наборі даних, і дані можна розділити на незалежні сегменти (процес, відомий як розділення даних), ви можете подивитися на багатообробну бібліотеку в Python.

Як приклад, розглянемо функцію foo, яка займає один аргумент, arg1, і скажімо, що ви хочете запустити функцію foo на ряд значень, наприклад, val1, val2, і val3.

деф foo(arg1 ) :
# робіть щось

якщо __name__ == '__main__':
Скріншот( Val1)
Скріншот( val2)
Світлодіодний( val3)

Щоб здійснити foo на декількох процесах разом, ви могли б використовувати мультипроцесорний басейн для запуску декількох процесів робітника разом:

від мультипроцесорного імпорту

деф foo(arg1 ) :
# робіть щось

якщо __name__ == '__main__':
p = ПОЛЬ (
p.map(фут, [фут1, фут2, фут3])

Бібліотека мультипроцесорних програм також надає різні інші API для паралельного програмування. Хочете дізнатися більше?