Многопоточное программирование в Python
Содержание
Что такое Threading?
Поток исполнения является наименьшим последовательность запрограммированных инструкций , которые могут управляться независимо друг от друга с помощью планировщика , который обычно входит в состав операционной системы.
Что такое многопоточность?
Многопоточность - это основная концепция программирования, которая поддерживает почти все языки программирования высокого уровня. Многопоточные программы похожи на однопоточные программы, которые вы изучали. Они отличаются только тем, что они поддерживают более одного параллельного потока выполнения, т. е. Могут одновременно выполнять несколько последовательностей команд. Эти потоки совместно используют ресурсы процесса, но могут выполняться независимо. Это означает, что один процесс может одновременно выполнять много разных «функций», позволяя приложению лучше использовать доступное оборудование (несколько ядер / процессоров). НаПример:, многопоточный операционная система может запускать несколько фоновых задач, таких как ведение журнала изменений файлов, индексирование данных и управление окнами одновременно.
Многопоточное программирование на Python
В следующем примере показано, как многопоточная программа выполняется в Python.
import time import threading class myThread(threading.Thread): def __init__(self, threadID): threading.Thread.__init__(self) self.threadID = threadID def run(self): for x in range(1, 5): print(" Thread ID :",self.threadID) time.sleep(1) print(" ") t1 = myThread(1) t1.start() t1 = myThread(2) t1.start() t1 = myThread(3) t1.start() t1 = myThread(4) t1.start()
Вывод:
Thread ID : 1 Thread ID : 2 Thread ID : 3 Thread ID : 4 Thread ID : 1 Thread ID : 4 Thread ID : 3 Thread ID : 2 Thread ID : 1 Thread ID : 3 Thread ID : 4 Thread ID : 2 Thread ID : 1 Thread ID : 3 Thread ID : 4 Thread ID : 2
Из вывода вы можете заметить, что эти потоки могут выполняться параллельно, не дожидаясь появления другого потока в python. Выполнение программы обычно связано с одним процессом.
Преимущество многопоточности заключается в том, что параллелизм может использоваться в процессе для предоставления нескольких одновременных услуг пользователю. Многопоточность также требует меньших затрат на обработку, чем многопрограммирование, поскольку параллельные потоки могут легче обмениваться общими ресурсами.
Источник: net-informations.com