Professional Documents
Culture Documents
آموزش برنامه نویسی پایتون 52 ت
آموزش برنامه نویسی پایتون 52 ت
این دقیقا همان چیزی است که سرآشپز بهش نیاز دارد یعنی دستیارانی که در آشپزی به وی کمک می کنند .در حال حاضر ،آنها
.می توانند وظایف خود را تقسیم کنند و سرآشپز نیاز به تغییر بین وظایف خود ندارد
def print_cube(num):
def print_square(num):
در بخش اول قطعه کد اضافه کردن کتابخانه را مشاهده می کنید که با دستور
import multiproccessing
.صورت می گیرد
:ایجاد می کنیم.که آرگومان های زیر را می گیرد Processبرای ایجاد یک فرآیند ،ما یک شیء از کالس
صورت خواهد )(startاستفاده می کنیم ،که در واقع با متد Processبرای شروع یک فرآیند ،ما از روش شروع کالس
.گرفت
)(p1.start
)(p2.start
هنگامی که فرآیند شروع می شود ،برنامه فعلی نیز اجرا می شود .برای جلوگیری از اجرای برنامه فعلی تا زمانی که فرایند
.کامل شود ،از روش پیوست استفاده می کنیم
)(p1.join
)(p2.join
منتظر می ماند .یکبار آنها را تکمیل می کنند ،اظهارات بعدی برنامه P2و سپس P1در نتیجه ،برنامه فعلی برای تکمیل
.فعلی اعدام می شوند
اجازه دهید برنامه دیگری را در نظر بگیریم تا مفهوم فرآیندهای مختلفی که در همان اسکریپت پایتون در حال اجرا هستند را
:درک کنیم .در این مثال زیر ،شناسه فرآیندهای اجرا شده در توابع هدف را چاپ می کنیم
# importing the multiprocessing module
import multiprocessing
import os
def worker1():
# printing process id
print("ID of process running worker1: {}".format(os.getpid()))
def worker2():
# printing process id
print("ID of process running worker2: {}".format(os.getpid()))
if __name__ == "__main__":
# printing main program process id
print("ID of main process: {}".format(os.getpid()))
# creating processes
p1 = multiprocessing.Process(target=worker1)
p2 = multiprocessing.Process(target=worker2)
# starting processes
p1.start()
p2.start()
# process IDs
print("ID of process p1: {}".format(p1.pid))
print("ID of process p2: {}".format(p2.pid))
اسکریپت اصلی پایتون یک شناسه فرآیند متفاوت دارد و ماژول چند پردازش فرایندهای جدید با شناسه های فرایند مختلف
همانطور که ما اشیای فرآیند، را ایجاد می کندp1 وp2 از تابع، در برنامه فوق. را ایجاد می کنیمos.getpid () برای
دریافت شناسه فرآیند در حال اجرا تابع هدف فعلی استفاده می کنیم.
Processاز کالس pidمطابقت می دهیم که با استفاده از ویژگی p2و p1توجه داشته باشید که آن را با شناسه های فرایند
.به دست می آید
.هر فرآیند به طور مستقل اجرا می شود و فضای حافظه خود دارد
استفاده Processاز کالس is_aliveبه محض اجرای تابع هدف ،پردازش ها خاتمه می یابد .در برنامه فوق ،از روش
.کردیم تا بررسی کنیم که آیا یک فرایند هنوز فعال است یا نه
:نمودار زیر را در نظر بگیرید تا ببینید چگونه فرآیندهای جدید متفاوت از اسکریپت اصلی پایتون هستند
propertiesقبلی