پردازش موازی یک روش برنامهنویسی است که به برنامهنویسان اجازه میدهد که برنامههای خود را به گونهای طراحی کنند که قسمتهای مختلف آنها همزمان اجرا شوند و بدین ترتیب، زمان اجرای آنها کاهش یابد. در پایتون نیز امکان پردازش موازی وجود دارد. چندین روش برای پردازش موازی در پایتون وجود دارد که از جمله آنها میتوان به استفاده از روشهای موجود در کتابخانههای multiprocessing، threading و concurrent.futures اشاره کرد. در زیر یک مثال ساده از هر یک از این روشها را ارائه میدهم:
۱. استفاده از کتابخانه multiprocessing:
python
import multiprocessing
defworker(num):
"""برای محاسبه مربع یک عدد"""print(num*num)
if __name__ == '__main__':
# تعداد پردازهها مشخص میشود
processes = []
for i inrange(10):
p = multiprocessing.Process(target=worker, args=(i,))
processes.append(p)
p.start()
for process in processes:
process.join()
۲. استفاده از کتابخانه threading:
python
import threading
defworker(num):
"""برای محاسبه مربع یک عدد"""print(num*num)
if __name__ == '__main__':
# تعداد رشتهها مشخص میشود
threads = []
for i inrange(10):
t = threading.Thread(target=worker, args=(i,))
threads.append(t)
t.start()
for thread in threads:
thread.join()
۳. استفاده از کتابخانه concurrent.futures:
python
import concurrent.futures
defworker(num):
"""برای محاسبه مربع یک عدد"""print(num*num)
if __name__ == '__main__':
# تعداد فرآیندها مشخص میشودwith concurrent.futures.ProcessPoolExecutor() as executor:
executor.map(worker, range(10))
در این مثالها، تعداد مربع اعداد از ۰ تا ۹ به صورت همزمان محاسبه میشود. لازم به ذکر است که برای برنامههای واقعی و پیچیدهتر نیز میتوان از این روشها بهره برد و بهترین روش را بر اساس نیاز و شرایط مربوطه انتخاب کرد.