در این مطلب، ویدئو Python 3 – Episode 51 – Multiprocess Pool با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:17:19
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:04,160 –> 00:00:05,520
به همه خوش آمدید این برایان است
2
00:00:05,520 –> 00:00:06,600
ما در مورد
3
00:00:06,600 –> 00:00:09,120
استخر چند فرآیندی صحبت خواهیم کرد و این
4
00:00:09,120 –> 00:00:10,960
مشکلی را که در آخرین ویدیو
5
00:00:10,960 –> 00:00:14,000
داشتیم را حل می کند، جایی که می خواهیم کارگری ایجاد کنیم تا کار
6
00:00:14,000 –> 00:00:15,040
7
00:00:15,040 –> 00:00:19,199
انجام دهد تا نتیجه را انجام دهد و همچنین
8
00:00:19,199 –> 00:00:22,400
منتظر آن باشیم. برای تکمیل، بنابراین ما در
9
00:00:22,400 –> 00:00:24,160
مورد مجموعهای از فرآیندها صحبت میکنیم و
10
00:00:24,160 –> 00:00:25,439
نتایج آنها را دریافت میکنیم، نتیجه نهایی
11
00:00:25,439 –> 00:00:26,400
چیزی شبیه به این خواهد بود که در آن
12
00:00:26,400 –> 00:00:27,359
13
00:00:27,359 –> 00:00:29,519
فرآیند اصلی خود را شروع میکنیم و سپس
14
00:00:29,519 –> 00:00:31,760
برخی از فرآیندهای کارگری را
15
00:00:31,760 –> 00:00:33,360
خواهیم داشت و ما میتوانیم ببینیم چه زمانی
16
00:00:33,360 –> 00:00:35,680
تمام میشوند و ما میخواهیم در
17
00:00:35,680 –> 00:00:38,239
واقع نتیجه هر یک از آنها را
18
00:00:38,239 –> 00:00:40,320
زمانی که تمام پردازشهایمان به پایان رسید، به دست آوریم،
19
00:00:40,320 –> 00:00:42,079
میخواهیم به طور خودکار فرآیند اصلی خود را به پایان برسانیم.
20
00:00:42,079 –> 00:00:43,040
21
00:00:43,040 –> 00:00:46,239
22
00:00:47,280 –> 00:00:48,800
23
00:00:48,800 –> 00:00:50,960
حدس زدید که این واردات ماست و
24
00:00:50,960 –> 00:00:51,760
من فقط
25
00:00:51,760 –> 00:00:54,160
کمی کپی و
26
00:00:54,160 –> 00:00:55,199
چسباندن انجام میدهم، از
27
00:00:55,199 –> 00:00:57,120
Logging چند پردازشی استفاده میکنیم و سپس از
28
00:00:57,120 –> 00:00:58,879
زمینه چند پردازشی که میخواهیم
29
00:00:58,879 –> 00:00:59,680
از فرآیند استفاده
30
00:00:59,680 –> 00:01:01,359
کنیم، متوقف میشویم. زمان و ما می
31
00:01:01,359 –> 00:01:03,600
خواهیم استفاده کنیم یک مولد اعداد تصادفی
32
00:01:03,600 –> 00:01:05,600
این مثال به طرز وحشتناکی
33
00:01:05,600 –> 00:01:07,520
شبیه به نمونه قبلی خواهد بود، بنابراین اگر
34
00:01:07,520 –> 00:01:09,119
ویدیوی آخر را تماشا کنید تقریباً یکسان به نظر می رسد
35
00:01:09,119 –> 00:01:10,320
اما ما این کار را
36
00:01:10,320 –> 00:01:11,200
37
00:01:11,200 –> 00:01:13,360
بسیار متفاوت در زیر کاپوت
38
00:01:13,360 –> 00:01:15,520
انجام خواهیم داد و خواهیم داشت. نتایج بسیار بهتری
39
00:01:15,520 –> 00:01:18,159
بیایید همین
40
00:01:20,479 –> 00:01:22,000
حالا که واردات خود را داریم نگاهی بیندازیم،
41
00:01:22,000 –> 00:01:24,560
میتوانیم عملکرد فرآیند کارگر خود را
42
00:01:24,560 –> 00:01:26,400
ادامه دهیم و این
43
00:01:26,400 –> 00:01:29,439
تقریباً مشابه آخرین ویدیویی خواهد بود
44
00:01:29,439 –> 00:01:31,119
که میخواهم به شما نشان دهم که اساساً میتوانید همین کار را انجام دهید.
45
00:01:31,119 –> 00:01:33,520
چیزی که همه چیز
46
00:01:33,520 –> 00:01:34,799
در زیر کاپوت همانطور که شما انتظار دارید اتفاق می افتد،
47
00:01:34,799 –> 00:01:37,119
بنابراین واقعاً هیچ مشکلی وجود ندارد،
48
00:01:37,119 –> 00:01:39,600
فقط اگر واقعاً آخرین ویدیو را از دست بدهید،
49
00:01:39,600 –> 00:01:41,040
من واقعاً این را تایپ
50
00:01:41,040 –> 00:01:41,600
51
00:01:41,600 –> 00:01:42,720
خواهم کرد، نمی خواهم وقت خود را تلف
52
00:01:42,720 –> 00:01:44,320
کنم، بنابراین می توانید با خیال راحت از آن بگذرید اگر آخرین ویدیو را تماشا میکنید، پیشروید،
53
00:01:44,320 –> 00:01:45,280
54
00:01:45,280 –> 00:01:49,759
اما من میخواهم بگویم تعداد آیتمهای کاری
55
00:01:49,759 –> 00:01:52,000
را تعریف کنید تا فقط یک
56
00:01:52,000 –> 00:01:53,840
مورد یا نوعی نام یا پیام داشته باشیم و
57
00:01:53,840 –> 00:01:54,880
سپس تعداد
58
00:01:54,880 –> 00:01:56,320
دفعاتی را داشته باشیم که روی
59
00:01:56,320 –> 00:01:57,520
هر تکرار حساب میشود n از آن حساب ما
60
00:01:57,520 –> 00:01:58,880
به خواب
61
00:01:58,880 –> 00:02:01,360
می رویم بنابراین من می خواهم نام را بگویم و می
62
00:02:01,360 –> 00:02:03,119
خواهم فرآیند فعلی نقطه ای چند پردازشی را انجام دهم.
63
00:02:03,119 –> 00:02:05,119
64
00:02:05,119 –> 00:02:06,880
65
00:02:06,880 –> 00:02:09,199
بله،
66
00:02:09,199 –> 00:02:10,720
صفحهکلید من
67
00:02:10,720 –> 00:02:12,560
امروز خیلی مفید نیست و پس از آن میخواهیم ثبتنام
68
00:02:12,560 –> 00:02:14,480
را انجام دهیم و دوباره
69
00:02:14,480 –> 00:02:16,400
فقط فرض میکنیم که زمانی که به این
70
00:02:16,400 –> 00:02:18,160
نقطه رسید، در واقع
71
00:02:18,160 –> 00:02:19,360
میدانید که ورود به سیستم پیکربندی شده است و
72
00:02:19,360 –> 00:02:22,080
همه چیز خوب است،
73
00:02:22,080 –> 00:02:23,840
من فقط آن را قالب بندی می
74
00:02:23,840 –> 00:02:25,520
کنم و می خواهم بگویم که می خواهیم
75
00:02:25,520 –> 00:02:27,840
نام را
76
00:02:29,680 –> 00:02:32,800
همراه با شروع کرده باشیم و می خواهم بدانم
77
00:02:32,800 –> 00:02:35,920
در واقع چه چیزی را اینجا شروع کردیم، بنابراین می
78
00:02:35,920 –> 00:02:36,640
خواهم به
79
00:02:36,640 –> 00:02:38,640
آن موردی بدهم که این است پارامتر درست
80
00:02:38,640 –> 00:02:40,879
در اینجا، بنابراین ما میخواهیم بگوییم که
81
00:02:40,879 –> 00:02:41,840
82
00:02:41,840 –> 00:02:44,480
هر موردی که شروع میکنیم نام فرآیند شروع شده است، به
83
00:02:44,480 –> 00:02:46,080
این ترتیب میتوانیم
84
00:02:46,080 –> 00:02:47,840
بلوکهای مختلف کاری را شروع کنیم که میتوانیم آن
85
00:02:47,840 –> 00:02:50,239
را به فرآیندهای مختلف تقسیم کنیم، در
86
00:02:50,239 –> 00:02:52,239
اینجا فقط به خاطر زمان میروم
87
00:02:52,239 –> 00:02:54,160
آن را کپی کنید تا من آن را داشته
88
00:02:54,160 –> 00:02:58,640
89
00:02:58,800 –> 00:03:00,879
باشم و سپس 4 برابر در محدوده و ما آن را برای c انجام می دهیم ount
90
00:03:00,879 –> 00:03:02,840
دوباره بسیار شبیه به آخرین
91
00:03:02,840 –> 00:03:05,200
ویدیویی است
92
00:03:05,200 –> 00:03:07,040
که می خواهیم نام اطلاعات ثبت نام را بگوییم و
93
00:03:07,040 –> 00:03:09,680
سپس می خواهم
94
00:03:09,680 –> 00:03:13,760
مورد برابر x باشد، واقعاً مهم نیست
95
00:03:13,760 –> 00:03:15,200
که چه چیزی را روی صفحه نمایش می دهیم، فقط تا
96
00:03:15,200 –> 00:03:16,080
زمانی که می توانیم نشان
97
00:03:16,080 –> 00:03:18,319
دهیم هی داریم کاری انجام می دهیم این
98
00:03:18,319 –> 00:03:19,920
فرآیند قطع نمیشود
99
00:03:19,920 –> 00:03:21,440
و سپس ما ادامه میدهیم و میگوییم
100
00:03:21,440 –> 00:03:23,840
که این فرآیند
101
00:03:23,840 –> 00:03:25,200
یا به طور خاص
102
00:03:25,200 –> 00:03:29,280
این موضوع در این فرآیند به خواب میرود،
103
00:03:30,560 –> 00:03:32,319
اگر رشتههای دیگری در آن
104
00:03:32,319 –> 00:03:33,599
فرآیند اجرا میشدند، با خوشحالی
105
00:03:33,599 –> 00:03:35,920
از بین میرفتند. در پسزمینه
106
00:03:35,920 –> 00:03:37,200
و سپس ادامه میدهیم و میگوییم نام
107
00:03:37,200 –> 00:03:39,440
اطلاعات ورود به سیستم و بهعلاوه
108
00:03:39,440 –> 00:03:43,120
پایان یافت،
109
00:03:45,360 –> 00:03:46,480
اکنون میخواهیم
110
00:03:46,480 –> 00:03:48,080
کاری متفاوت از ویدیوی قبلی انجام دهیم که
111
00:03:48,080 –> 00:03:50,239
در واقع میخواهم مقداری را برگردانم و
112
00:03:50,239 –> 00:03:51,760
به همین دلیل میخواستم برای تایپ همه اینها، بنابراین
113
00:03:51,760 –> 00:03:53,040
114
00:03:53,040 –> 00:03:54,879
به یاد داشته باشید که آخرین ویدیو
115
00:03:54,879 –> 00:03:56,239
چیزی برنمیگرداند، اما این یکی میخواهد باشد، بنابراین
116
00:03:56,239 –> 00:03:56,959
ما میخواهیم بگوییم
117
00:03:56,959 –> 00:04:00,080
مورد پلاس و سپس فقط
118
00:04:00,080 –> 00:04:01,840
یک رشته برای من مهم نیست که چه چیزی قرار دادهایم
119
00:04:01,840 –> 00:04:04,640
تمام شده است
120
00:04:06,400 –> 00:04:07,760
و شما میتوانید قرار دهید نوعی از شماره یا
121
00:04:07,760 –> 00:04:09,280
هر چیزی که شما می خواهید t o بازگشت به اینجا می
122
00:04:09,280 –> 00:04:11,040
تواند یک
123
00:04:11,040 –> 00:04:13,200
زوج رشته در bool باشد واقعاً مهم نیست شما
124
00:04:13,200 –> 00:04:16,478
فقط می توانید هر چیزی را که می خواهید برگردانید
125
00:04:16,478 –> 00:04:19,759
بنابراین به این نگاه کنید خوب است خسته کننده
126
00:04:19,759 –> 00:04:21,839
است پایتون ساده است اما این نکته ای
127
00:04:21,839 –> 00:04:24,479
است که اینقدر قدرتمند است که می توانید
128
00:04:24,479 –> 00:04:26,400
کدهای بسیار ساده و حتی به آن بدهید کد بسیار پیچیده است
129
00:04:26,400 –> 00:04:27,520
و فقط
130
00:04:27,520 –> 00:04:31,199
بر روی یک سیستم چند فرآیندی کار می
131
00:04:33,759 –> 00:04:35,280
کند. خیلی مهم است که از بخش آخر رد شوید،
132
00:04:35,280 –> 00:04:37,040
فقط در صورتی که از قبل رد شوید
133
00:04:37,040 –> 00:04:37,440
،
134
00:04:37,440 –> 00:04:39,520
عملکرد ما تقریباً یکسان است، به جز
135
00:04:39,520 –> 00:04:41,680
اینکه ما مقداری را
136
00:04:41,680 –> 00:04:42,960
برمی گردانیم، واقعاً مهم نیست که چه کاری انجام می دهیم. بازگشت ما فقط
137
00:04:42,960 –> 00:04:44,560
نوعی از مقدار
138
00:04:44,560 –> 00:04:46,000
را برمی گردانیم زیرا می خواهیم آن مقدار بازگشتی را
139
00:04:46,000 –> 00:04:47,040
پس
140
00:04:47,040 –> 00:04:48,800
بگیریم، این کار را در فرآیند اصلی انجام خواهیم
141
00:04:48,800 –> 00:04:51,600
داد، بنابراین من فقط می گویم
142
00:04:51,600 –> 00:04:53,840
main
143
00:04:55,199 –> 00:04:56,560
و اجازه دهید ادامه دهیم و تابع اصلی خود را تعریف کنیم.
144
00:04:56,560 –> 00:04:58,960
145
00:05:01,440 –> 00:05:04,080
یک صفحهکلید کوچک خوشحال هستم، اکنون
146
00:05:04,080 –> 00:05:05,520
میخواهم به اینجا بروم و میخواهم تعریف کنم که
147
00:05:05,520 –> 00:05:06,720
148
00:05:06,720 –> 00:05:09,840
چه چیزی قرار است به آن فراخوانی داده شود.
149
00:05:09,840 –> 00:05:12,000
150
00:05:12,000 –> 00:05:14,320
151
00:05:14,320 –> 00:05:15,280
152
00:05:15,280 –> 00:05:17,840
تماس بگیرید یا اساسا تماس بگیرید عملکرد ما
153
00:05:17,840 –> 00:05:19,280
و ما نمی دانیم که چه زمانی قرار است این
154
00:05:19,280 –> 00:05:20,160
اتفاق بیفتد،
155
00:05:20,160 –> 00:05:23,280
بنابراین من می خواهم نتیجه proc را بگویم
156
00:05:23,600 –> 00:05:25,280
و این را
157
00:05:25,280 –> 00:05:26,800
در اینجا کمی در عرض یک ثانیه توضیح خواهم داد، اما در حال حاضر
158
00:05:26,800 –> 00:05:28,080
فقط یک جهش با ایمان انجام دهید
159
00:05:28,080 –> 00:05:28,720
160
00:05:28,720 –> 00:05:31,680
چیزی به این نام میرود و
161
00:05:31,680 –> 00:05:32,560
ما میخواهیم بگوییم
162
00:05:32,560 –> 00:05:35,039
نتیجه
163
00:05:37,600 –> 00:05:40,400
از اینجا، ما فقط میخواهیم بگوییم که
164
00:05:40,400 –> 00:05:41,039
165
00:05:41,039 –> 00:05:44,560
اطلاعات نقطه ورود
166
00:05:44,560 –> 00:05:47,039
به سیستم ادامه دهید و آن را قالببندی کنید و من
167
00:05:47,039 –> 00:05:48,560
میخواهم نتیجه
168
00:05:48,560 –> 00:05:50,400
برابر باشد و سپس هر
169
00:05:50,400 –> 00:05:52,479
نتیجه واقعی
170
00:05:52,479 –> 00:05:54,560
اکنون در مورد شما باشد. دوباره تعجب می کنم که
171
00:05:54,560 –> 00:05:55,919
این نتیجه چه چیزی خوب خواهد بود،
172
00:05:55,919 –> 00:05:57,600
در واقع ارزش بازگشتی
173
00:05:57,600 –> 00:06:01,280
در اینجا از فرآیند worker ما خواهد بود
174
00:06:01,280 –> 00:06:02,960
، این بخش زیبا در مورد چیزی است که می خواهم
175
00:06:02,960 –> 00:06:04,319
توضیح دهم این است
176
00:06:04,319 –> 00:06:07,039
که شما در واقع می توانید بازدهی را از
177
00:06:07,039 –> 00:06:08,560
فرآیند worker خود دریافت کنید
178
00:06:08,560 –> 00:06:11,680
با فرض اینکه واقعاً چنین بوده است. یک کد خروج
179
00:06:11,680 –> 00:06:13,600
صفر و همانطور که انتظار میرفت کار کرد، میتوانید
180
00:06:13,600 –> 00:06:14,880
دریافت کنید که
181
00:06:14,880 –> 00:06:17,039
اگر فسخ شد، هرگز
182
00:06:17,039 –> 00:06:18,800
با این proc بازگشت تماس نمیگیرد
183
00:06:18,800 –> 00:06:20,080
، حداقل من فکر نمیکنم آن را به
184
00:06:20,080 –> 00:06:22,160
طور کامل آزمایش نکردهام، اما فکر نمیکنم این
185
00:06:22,160 –> 00:06:23,280
کار را انجام دهد.
186
00:06:23,280 –> 00:06:24,720
من واقعاً ممکن است آن را در یک
187
00:06:24,720 –> 00:06:26,639
ویدیوی آینده آزمایش کنم در ادامه ما به
188
00:06:26,639 –> 00:06:28,080
189
00:06:28,080 –> 00:06:32,160
ادامه میرویم و پیکربندی اولیه لاگ خود را انجام میدهیم
190
00:06:32,160 –> 00:06:33,440
و این تابع اصلی را تکمیل میکنیم،
191
00:06:33,440 –> 00:06:36,400
من
192
00:06:36,400 –> 00:06:38,160
فقط یک تکه کپی و چسباندن را در اینجا
193
00:06:38,160 –> 00:06:41,039
انجام میدهم، بنابراین میخواهم بگویم که
194
00:06:41,039 –> 00:06:45,120
حداکثر مقدار شروع شده برابر است. 5. بنابراین ما اکنون باید
195
00:06:45,120 –> 00:06:47,440
یک Pool بگیریم زیرا ما در مورد
196
00:06:47,440 –> 00:06:49,120
مجموعه هایی از فرآیندها صحبت می کنیم که قبلاً در مورد Thread Pools صحبت کرده
197
00:06:49,120 –> 00:06:50,960
ایم و
198
00:06:50,960 –> 00:06:53,440
تقریباً همان چیزی است که فقط یک
199
00:06:53,440 –> 00:06:55,759
گروه از فرآیندهای قابل استفاده مجدد است
200
00:06:55,759 –> 00:06:58,800
بنابراین من می خواهم بگویم استخر
201
00:06:58,800 –> 00:07:02,319
برابر با چند پردازش است. استخر نقطه
202
00:07:02,319 –> 00:07:04,720
203
00:07:05,680 –> 00:07:08,800
و آن با یک p max بزرگ است و
204
00:07:08,800 –> 00:07:10,080
یک نمونه از
205
00:07:10,080 –> 00:07:12,479
آن شیء pool را برای ما ایجاد می کند،
206
00:07:12,479 –> 00:07:16,479
من لیست نتایج را می گویم
207
00:07:16,479 –> 00:07:19,440
زیرا
208
00:07:19,440 –> 00:07:21,039
اکنون وقتی در مورد نتایج صحبت می کنیم لیستی از این نتایج را دریافت خواهیم کرد.
209
00:07:21,039 –> 00:07:22,639
210
00:07:22,639 –> 00:07:24,639
این در واقع با
211
00:07:24,639 –> 00:07:26,000
نتیجه فرآیندی
212
00:07:26,000 –> 00:07:27,360
که قرار است با
213
00:07:27,360 –> 00:07:31,840
مقادیر ناهمزمان آینده کار
214
00:07:33,280 –> 00:07:36,800
کنیم متفاوت است، می گوییم 4x در محدوده
215
00:07:36,800 –> 00:07:39,199
حداکثر
216
00:07:41,599 –> 00:07:45,840
و من می خواهم در اینجا یک آیتم بسازم
217
00:07:47,199 –> 00:07:49,039
این فقط یک آرگومان خواهد بود
218
00:07:49,039 –> 00:07:50,400
که ما به آن منتقل می کنیم. بنابراین من می خواهم
219
00:07:50,400 –> 00:07:50,800
220
00:07:50,800 –> 00:07:56,240
آیتم را به اضافه نمایش رشته x بگویم
221
00:07:57,599 –> 00:08:00,960
تعداد ما خواهد بود و بله،
222
00:08:00,960 –> 00:08:02,160
ممکن است قبلاً متوجه شده
223
00:08:02,160 –> 00:08:03,520
باشید که ما در اینجا چه می کنیم، این است که ما این
224
00:08:03,520 –> 00:08:05,520
موارد را درست در اینجا
225
00:08:05,520 –> 00:08:07,280
می سازیم، بنابراین ما فقط می
226
00:08:07,280 –> 00:08:09,440
خواهیم مقادیر پارامترهای خود را ایجاد کنیم،
227
00:08:09,440 –> 00:08:11,199
بنابراین می خواهیم بگوییم count برابر است و
228
00:08:11,199 –> 00:08:13,520
در اینجا من فقط یک
229
00:08:13,520 –> 00:08:17,759
محدوده رند نقطه تصادفی می گوییم
230
00:08:17,759 –> 00:08:19,759
و می خواهیم بگوییم از یک تا پنج
231
00:08:19,759 –> 00:08:20,960
شما می توانید هر عددی را که می خواهید قرار دهید اما
232
00:08:20,960 –> 00:08:22,080
من سعی می کنم این ویدیو را کمی کوتاه نگه دارم.
233
00:08:22,080 –> 00:08:24,560
234
00:08:24,560 –> 00:08:27,840
خفاش ما نمی دانیم
235
00:08:27,840 –> 00:08:29,599
که این روند برای چه مدت قرار است ادامه داشته
236
00:08:29,599 –> 00:08:31,199
باشد زیرا هر شمارش باعث می شود
237
00:08:31,199 –> 00:08:31,599
این
238
00:08:31,599 –> 00:08:34,559
یک ثانیه بخوابد بنابراین ما باید
239
00:08:34,559 –> 00:08:35,519
240
00:08:35,519 –> 00:08:37,039
آن را بفهمیم و این چیزی است که ما
241
00:08:37,039 –> 00:08:40,240
واقعاً با آن کار می کنیم این نتایج با
242
00:08:40,240 –> 00:08:43,679
بنابراین من میخواهم بگویم r
243
00:08:43,679 –> 00:08:45,760
برابر است و ما میخواهیم شی pool خود
244
00:08:45,760 –> 00:08:48,160
245
00:08:48,560 –> 00:08:50,480
را بگیریم و اکنون میخواهم اعمال کنم.
246
00:08:50,480 –> 00:08:52,0