در این مطلب، ویدئو Python 3 – Episode 45 – Thread Pools با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:52
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:04,319 –> 00:00:05,759
به همه خوش آمدید، این برایان است،
2
00:00:05,759 –> 00:00:06,560
ما در مورد
3
00:00:06,560 –> 00:00:09,519
thread pools صحبت خواهیم
4
00:00:09,519 –> 00:00:10,240
کرد، بنابراین موضوع،
5
00:00:10,240 –> 00:00:12,639
استفاده مجدد از رشته های موجود است، زیرا
6
00:00:12,639 –> 00:00:13,599
ایجاد رشته
7
00:00:13,599 –> 00:00:15,920
ها گران هستند و اجازه دهید در اینجا کمی توضیح بدهم،
8
00:00:15,920 –> 00:00:17,840
بنابراین
9
00:00:17,840 –> 00:00:20,560
زمانی که یک موضوع ایجاد می کنید، کار بسیار
10
00:00:20,560 –> 00:00:22,560
ساده است. python اما چیزی که
11
00:00:22,560 –> 00:00:24,640
در زیر هود اتفاق می افتد تماس های زیادی با
12
00:00:24,640 –> 00:00:25,840
سیستم عامل است که
13
00:00:25,840 –> 00:00:29,439
سیستم عامل باید برای تخصیص
14
00:00:29,439 –> 00:00:31,519
ram cpu تمام این چیزهای عالی دیگری که شما
15
00:00:31,519 –> 00:00:32,479
نیاز دارید و
16
00:00:32,479 –> 00:00:35,040
از نظر قدرت محاسباتی بسیار گران می شود
17
00:00:35,040 –> 00:00:37,040
18
00:00:37,040 –> 00:00:39,760
اکنون به این موضوع فکر کنید شما هزاران موضوع دارید
19
00:00:39,760 –> 00:00:41,040
و منظورم
20
00:00:41,040 –> 00:00:42,480
هزاران چیز است که میخواهید
21
00:00:42,480 –> 00:00:44,879
روی یک رشته بیندازید، رایانهتان نمیتواند از پس
22
00:00:44,879 –> 00:00:46,719
این رشتهها برآید،
23
00:00:46,719 –> 00:00:48,960
در واقع اکثر سیستمعاملهای رایانه
24
00:00:48,960 –> 00:00:51,440
تعداد رشتههایی را که یک برنامه
25
00:00:51,440 –> 00:00:52,559
میتواند اجرا
26
00:00:52,559 –> 00:00:54,719
کند، محدود میکنند، بنابراین اگر تلاش کنید، در نهایت برنامهتان خراب میشود.
27
00:00:54,719 –> 00:00:56,559
برای ایجاد رشته های
28
00:00:56,559 –> 00:00:58,480
زیاد نگران نباشید این تعداد به طرز
29
00:00:58,480 –> 00:00:59,840
عجیبی بیشتر از چیزی است که احتمالاً می خواهید
30
00:00:59,840 –> 00:01:00,879
استفاده کنید،
31
00:01:00,879 –> 00:01:03,199
بنابراین یک Thread Pool چیزی شبیه به
32
00:01:03,199 –> 00:01:04,559
این به نظر
33
00:01:04,559 –> 00:01:06,720
می رسد شما یک دسته از آن دارید تولیدکنندگان کار و
34
00:01:06,720 –> 00:01:08,560
اینها میتوانند کلاسهایی باشند، میتوانند ورودیهای صفحهکلید سوکتهای شبکه باشند.
35
00:01:08,560 –> 00:01:09,600
36
00:01:09,600 –> 00:01:11,600
37
00:01:11,600 –> 00:01:13,840
38
00:01:13,840 –> 00:01:16,240
39
00:01:16,240 –> 00:01:17,920
40
00:01:17,920 –> 00:01:19,520
41
00:01:19,520 –> 00:01:20,479
42
00:01:20,479 –> 00:01:23,520
سپس شما تعداد از پیش تعیین شده
43
00:01:23,520 –> 00:01:24,320
ای از
44
00:01:24,320 –> 00:01:27,439
کارگران استخر قرمز دارید یا اینها رشته های جداگانه ای هستند
45
00:01:27,439 –> 00:01:30,320
که در یک استخر می نشینند به یک
46
00:01:30,320 –> 00:01:31,200
استخر مانند
47
00:01:31,200 –> 00:01:33,520
یک چاه فکر می کنند لیستی از رشته ها بسیار شبیه به
48
00:01:33,520 –> 00:01:35,840
آنچه در ویدیوی قبلی انجام دادیم
49
00:01:35,840 –> 00:01:37,759
شما قرار است یک عدد مجموعه داشته باشید
50
00:01:37,759 –> 00:01:39,280
تفاوت در اینجا این است
51
00:01:39,280 –> 00:01:42,159
که این رشتهها کار خود را به پایان میرسانند و
52
00:01:42,159 –> 00:01:42,560
53
00:01:42,560 –> 00:01:45,439
برای کارهای بیشتر در دسترس قرار میگیرند، بنابراین شما میتوانید
54
00:01:45,439 –> 00:01:46,960
اساساً کارخانهای ایجاد کنید که در آن
55
00:01:46,960 –> 00:01:47,600
56
00:01:47,600 –> 00:01:50,079
کار را در این استخر رشتهها فشار میدهید و
57
00:01:50,079 –> 00:01:51,680
کار توسط هر کارگری
58
00:01:51,680 –> 00:01:53,520
که رایگان است تکمیل میشود و کار متوقف میشود و منتظر میماند.
59
00:01:53,520 –> 00:01:54,799
یک کارگر آزاد
60
00:01:54,799 –> 00:01:57,439
واقعاً فوقالعاده جالب است، بیایید
61
00:01:57,439 –> 00:02:00,159
شیرجه بزنیم و نگاهی بیندازیم،
62
00:02:01,200 –> 00:02:03,119
خوب اولین کاری که باید انجام دهیم این است که
63
00:02:03,119 –> 00:02:04,240
واردات
64
00:02:04,240 –> 00:02:06,079
65
00:02:06,079 –> 00:02:07,600
66
00:02:07,600 –> 00:02:09,440
را انجام دهیم. همه چیز را بهخوبی ثبت
67
00:02:09,440 –> 00:02:11,760
میکنیم و
68
00:02:11,760 –> 00:02:13,120
ما رشتهها را وارد میکنیم،
69
00:02:13,120 –> 00:02:14,879
کل آن ماژول را وارد میکنیم تا نشان دهیم که میتوانید
70
00:02:14,879 –> 00:02:16,720
این کار را انجام دهید.
71
00:02:16,720 –> 00:02:18,319
72
00:02:18,319 –> 00:02:20,959
فرم را به این روش انجام دهید
73
00:02:20,959 –> 00:02:24,800
و ما می توانیم از طریق
74
00:02:24,800 –> 00:02:29,200
آتی نقطه همزمان وارد
75
00:02:29,200 –> 00:02:32,560
کنید مجری کشش رشته را وارد کنید
76
00:02:32,560 –> 00:02:36,000
چه مشکلی ندارد، بنابراین می گوییم
77
00:02:36,000 –> 00:02:36,800
78
00:02:36,800 –> 00:02:40,160
از آتی ماژول
79
00:02:40,160 –> 00:02:41,760
80
00:02:41,760 –> 00:02:43,200
همزمانی، وقتی می شنوید، یک مجری کشش نخ را همزمان وارد می کنیم
81
00:02:43,200 –> 00:02:44,720
کلمه Concurrency
82
00:02:44,720 –> 00:02:46,800
واقعاً این یک نسخه سطح بالایی از
83
00:02:46,800 –> 00:02:48,720
threading است. راهی برای انجام threading
84
00:02:48,720 –> 00:02:50,400
با پنهان کردن تمام جزئیات رشته زشت در
85
00:02:50,400 –> 00:02:53,680
آینده است که اساساً به این معنی است
86
00:02:53,680 –> 00:02:55,440
که ما با یک مقدار
87
00:02:55,440 –> 00:02:57,840
کار خواهیم کرد اما نمی دانیم که این مقدار چیست
88
00:02:57,840 –> 00:02:59,200
. در آینده این مقدار را دریافت می
89
00:02:59,200 –> 00:03:01,519
کنیم، به همین دلیل است که به آن
90
00:03:01,519 –> 00:03:02,959
آینده
91
00:03:02,959 –> 00:03:04,319
می گویند و سپس ما می خواهیم مجری کشش نخ را وارد کنیم،
92
00:03:04,319 –> 00:03:06,319
93
00:03:06,319 –> 00:03:08,400
این یک اصطلاح بسیار زیبا برای گفتن است که هی
94
00:03:08,400 –> 00:03:10,720
پایتون یک Thread Pool بسازید
95
00:03:10,720 –> 00:03:13,840
و اکنون مقداری کد را اجرا کنید، فکر می کنم
96
00:03:13,840 –> 00:03:15,280
کسی درست کند. من اگر اشتباه
97
00:03:15,280 –> 00:03:17,840
می کنم باید پایتون 3.2 یا بالاتر داشته باشید
98
00:03:17,840 –> 00:03:19,760
تا این خط کار کند، بنابراین اگر
99
00:03:19,760 –> 00:03:20,640
شروع به گرفتن
100
00:03:20,640 –> 00:03:23,519
یک ناشناخته کردید که نمی توانید آن را پیدا کنید، این همان
101
00:03:23,519 –> 00:03:24,799
چیزی است که در حال رخ دادن است، به یک نسخه جدیدتر از پایتون نیاز دارید
102
00:03:24,799 –> 00:03:25,920
103
00:03:25,920 –> 00:03:27,040
و ما باید آن را پیدا کنیم. به جلو می رویم و می گوییم
104
00:03:27,040 –> 00:03:29,360
زمان وارد کردن، زیرا ما
105
00:03:29,360 –> 00:03:31,040
با استفاده از تابع خواب،
106
00:03:31,040 –> 00:03:32,239
زمان را متوقف می کنیم، وقتی می گویم زمان
107
00:03:32,239 –> 00:03:34,560
توقف، رشته فعلی را متوقف می کنیم، به
108
00:03:34,560 –> 00:03:36,400
یاد داشته باشید که این رشته ها
109
00:03:36,400 –> 00:03:39,519
در مجموعه ای از رشته ها اجرا می شوند
110
00:03:39,519 –> 00:03:41,519
و ما می رویم برای آخرین بار
111
00:03:41,519 –> 00:03:43,519
وارد کردن تصادفی، زیرا ما با
112
00:03:43,519 –> 00:03:43,840
113
00:03:43,840 –> 00:03:47,840
تولید کننده اعداد تصادفی کار
114
00:03:49,280 –> 00:03:51,040
می کنیم، اکنون که همه واردات خود را وارد کرده ایم،
115
00:03:51,040 –> 00:03:53,120
باید یک تابع آزمایشی بسازیم، این
116
00:03:53,120 –> 00:03:54,560
تابعی است که می خواهیم
117
00:03:54,560 –> 00:03:57,200
روی یک رشته اجرا کنیم. میخواهیم بگوییم
118
00:03:57,200 –> 00:03:58,959
تست def و ما یک آیتم میخواهیم که
119
00:03:58,959 –> 00:04:00,879
از اینجا به آن تحویل
120
00:04:00,879 –> 00:04:03,200
میدهیم، میخواهم شمارهای بگیرم که
121
00:04:03,200 –> 00:04:04,239
122
00:04:04,239 –> 00:04:06,319
این موضوع را متوقف میکنیم، میخواهم تصادفی باشد،
123
00:04:06,319 –> 00:04:08,560
بنابراین میروم گفتن s برابر است با
124
00:04:08,560 –> 00:04:11,599
محدوده تصادفی تصادفی
125
00:04:11,599 –> 00:04:14,640
و ما بین 1 تا 10 ثانیه
126
00:04:14,640 –> 00:04:18,320
می خواهیم و من می خواهم بگویم زمان نقطه خواب
127
00:04:18,320 –> 00:04:20,798
o هرچه که این عدد به طور موثر
128
00:04:20,798 –> 00:04:22,960
رشته فعلی را به خواب میبرد،
129
00:04:22,960 –> 00:04:24,560
این به وفور مفید
130
00:04:24,560 –> 00:04:25,759
نیست، زیرا واقعاً به ما نمیگوید که چه اتفاقی میافتد،
131
00:04:25,759 –> 00:04:27,280
بنابراین ما میخواهیم از
132
00:04:27,280 –> 00:04:29,759
ورود به سیستم استفاده کنیم،
133
00:04:29,759 –> 00:04:30,880
ما هنوز ثبتنام را پیکربندی نکردهایم. این کار را در
134
00:04:30,880 –> 00:04:32,240
تابع اصلی انجام دهید، بنابراین
135
00:04:32,240 –> 00:04:34,639
بیایید فرض کنیم که اگر
136
00:04:34,639 –> 00:04:35,759
ما در حال اجرای این تابع
137
00:04:35,759 –> 00:04:39,199
ثبت گزارش پیکربندی شده است،
138
00:04:39,199 –> 00:04:42,479
بیایید ادامه دهیم و بگوییم thread
139
00:04:42,479 –> 00:04:44,720
و اکنون می خواهیم بدانیم روی چه موردی
140
00:04:44,720 –> 00:04:46,560
هستیم زیرا هر رشته در حال انجام است برای اینکه یک
141
00:04:46,560 –> 00:04:49,199
آیتم متفاوت باشد،
142
00:04:50,160 –> 00:04:52,720
میخواهیم شناسه رشته را بدانیم،
143
00:04:52,720 –> 00:04:54,720
این چیزی نیست که به آن اختصاص دهیم
144
00:04:54,720 –> 00:04:56,160
، چیزی است که سیستم عامل
145
00:04:56,160 –> 00:04:57,919
به پایتون میگوید و پایتون به ما میگوید،
146
00:04:57,919 –> 00:05:00,800
بنابراین این موضوع در
147
00:05:00,800 –> 00:05:02,000
هر برنامه،
148
00:05:02,000 –> 00:05:03,600
هر پلتفرم، هر
149
00:05:03,600 –> 00:05:05,360
عامل، متفاوت خواهد بود. سیستم و حتی در نسخههای خاص،
150
00:05:05,360 –> 00:05:06,960
بنابراین
151
00:05:06,960 –> 00:05:08,400
به این ضمیمه نشوید، قرار نیست برای
152
00:05:08,400 –> 00:05:10,400
مدت طولانی در اطراف بماند، بنابراین من میخواهم بگویم که
153
00:05:10,400 –> 00:05:11,440
154
00:05:11,440 –> 00:05:15,280
نقطه نخی است، میخواهیم
155
00:05:15,280 –> 00:05:18,560
شناسه زیرخط کوتاه برای
156
00:05:18,560 –> 00:05:21,600
هویت را دریافت کنیم، بنابراین میخواهیم موضوع فعلی را دریافت کنیم.
157
00:05:21,600 –> 00:05:22,960
بنابراین
158
00:05:22,960 –> 00:05:26,080
159
00:05:26,080 –> 00:05:28,240
یک عدد صحیح غیرصفری دریافت کنید که به طور منحصربهفرد
160
00:05:28,240 –> 00:05:30,000
رشته فعلی را در میان
161
00:05:30,000 –> 00:05:31,919
رشتههای دیگر که به طور همزمان وجود دارند شناسایی میکند،
162
00:05:31,919 –> 00:05:33,680
این اساساً نحوهی تشخیص این است که سیستمعامل
163
00:05:33,680 –> 00:05:34,720
164
00:05:34,720 –> 00:05:38,160
تعیین میکند رشته در واقع چیست.
165
00:05:38,160 –> 00:05:40,240
166
00:05:40,240 –> 00:05:41,360
بنابراین ما میخواهیم
167
00:05:41,360 –> 00:05:43,440
نام رشته را دریافت کنیم
168
00:05:43,440 –> 00:05:45,840
، نام همیشه وجود ندارد، اما
169
00:05:45,840 –> 00:05:47,199
چون ما این را در یک Thread Pool اجرا میکنیم،
170
00:05:47,199 –> 00:05:48,800
باید آنجا باشد،
171
00:05:48,800 –> 00:05:54,240
بنابراین من میخواهم نام فعلی را بگویم و
172
00:05:54,639 –> 00:05:58,880
173
00:06:00,880 –> 00:06:03,600
در صورت وجود زیر خط قرمز، نام نقطه قرمز را زیر خط بکشم. متعجبم که بله
174
00:06:03,600 –> 00:06:04,160
175
00:06:04,160 –> 00:06:06,880
موضوع فعلی در واقع یک شی thread را به شما تحویل می
176
00:06:06,880 –> 00:06:07,840
دهد،
177
00:06:07,840 –> 00:06:09,840
بنابراین شی thread فعلی را برگردانید که
178
00:06:09,840 –> 00:06:11,840
با کنترل رشته تماس گیرنده مطابقت دارد،
179
00:06:11,840 –> 00:06:15,199
بسیار گیج کننده است،
180
00:06:15,199 –> 00:06:16,160
اما اساساً آنچه شما باید
181
00:06:16,160 –> 00:06:18,080
در اینجا بفهمید این است که ما یک
182
00:06:18,080 –> 00:06:19,600
شناسه برای سیستم عامل دریافت می کنیم. برای
183
00:06:19,600 –> 00:06:21,440
تعیین اینکه چه چیزی است استفاده میکند و
184
00:06:21,440 –> 00:06:22,960
ما نامی را دریافت میکنیم که اساساً یک
185
00:06:22,960 –> 00:06:26,319
نسخه دوستانه از id است، من نباید
186
00:06:26,319 –> 00:06:27,520
بگویم که یک نسخه دوستانه از ID است
187
00:06:27,520 –> 00:06:28,479
زیرا این دو کاملاً با هم متفاوت هستند.
188
00:06:28,479 –> 00:06:30,319
gs تضمینی
189
00:06:30,319 –> 00:06:31,440
وجود ندارد که نام وجود داشته باشد، اما شناسه
190
00:06:31,440 –> 00:06:34,400
تقریباً در حال حاضر درست است، بیایید
191
00:06:34,400 –> 00:06:37,680
جلو برویم و فقط
192
00:06:38,400 –> 00:06:41,440
193
00:06:43,039 –> 00:06:44,400
این را بگیریم و میخواهم بگویم احتمالاً باید این مشکل ر