در این مطلب، ویدئو موضوعات در پایتون: سرعت پایتون را با همزمانی افزایش دهید با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:11:08
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,399 –> 00:00:02,240
در درس قبلی شما
2
00:00:02,240 –> 00:00:03,840
را با مفهوم همزمانی
3
00:00:03,840 –> 00:00:06,000
و الگوهای متفاوتی که می تواند در
4
00:00:06,000 –> 00:00:07,600
این درس به شما بدهد آشنا کردم، در مورد
5
00:00:07,600 –> 00:00:10,000
رشته ها در پایتون صحبت
6
00:00:10,000 –> 00:00:12,080
خواهم کرد همانطور که در درس تاخیر به شما نشان دادم
7
00:00:12,080 –> 00:00:14,000
اکثر برنامه ها زمان زیادی را صرف
8
00:00:14,000 –> 00:00:16,160
انتظار برای ورودی می کنند. و
9
00:00:16,160 –> 00:00:17,680
نخهای خروجی به شما امکان میدهند محاسبات خود را زمانی برش دهید
10
00:00:17,680 –> 00:00:20,000
در حالی که یک رشته در انتظار
11
00:00:20,000 –> 00:00:20,320
12
00:00:20,320 –> 00:00:22,720
ورودی است.
13
00:00:22,720 –> 00:00:24,640
14
00:00:24,640 –> 00:00:26,160
15
00:00:26,160 –> 00:00:29,439
16
00:00:29,439 –> 00:00:31,840
17
00:00:31,840 –> 00:00:33,840
18
00:00:33,840 –> 00:00:37,200
یا فعالیت شبکه،
19
00:00:37,200 –> 00:00:38,800
تمام نرم افزارهایی که
20
00:00:38,800 –> 00:00:40,239
در این دوره نشان می دهم، در قسمت
21
00:00:40,239 –> 00:00:42,239
کشویی موجود است،
22
00:00:42,239 –> 00:00:44,960
اگر می خواهید دنبال کنید
23
00:00:44,960 –> 00:00:46,399
تا تفاوتی را که
24
00:00:46,399 –> 00:00:47,440
threading می تواند باعث شود
25
00:00:47,440 –> 00:00:49,600
من به چیزی برای مقایسه نیاز داشته باشم، در دسترس است،
26
00:00:49,600 –> 00:00:51,199
بنابراین می خواهم شروع کنم. با یک
27
00:00:51,199 –> 00:00:53,280
نسخه همزمان از یک برنامه کوچک،
28
00:00:53,280 –> 00:00:55,199
این برنامه چندین بار دو صفحه وب مختلف را پایین می
29
00:00:55,199 –> 00:00:58,160
آورد.
30
00:00:58,160 –> 00:01:00,079
خط 14 جایی است که کلید را پیدا خواهید کرد.
31
00:01:00,079 –> 00:01:01,600
نقطه ورود به کد
32
00:01:01,600 –> 00:01:03,760
این تابع به نام دانلود همه سایت ها
33
00:01:03,760 –> 00:01:05,760
لیستی از سایت ها
34
00:01:05,760 –> 00:01:08,720
را می گیرد و هر یک از آدرس های موجود در لیست را جستجو می کند
35
00:01:08,720 –> 00:01:09,439
و
36
00:01:09,439 –> 00:01:12,960
تابع سایت دانلود را فراخوانی می کند تابع سایت دانلود
37
00:01:12,960 –> 00:01:16,320
به صورت آنلاین تعریف شده است 8 یک
38
00:01:16,320 –> 00:01:18,240
جلسه از درخواست ها دریافت می کند که
39
00:01:18,240 –> 00:01:21,119
کتابخانه من است با استفاده از دانلود صفحات وب
40
00:01:21,119 –> 00:01:24,159
در خط 10، محتوا را واکشی
41
00:01:24,159 –> 00:01:25,759
می کند تا کمی شفافیت
42
00:01:25,759 –> 00:01:26,960
در مورد کاری که انجام می دهد
43
00:01:26,960 –> 00:01:29,600
44
00:01:29,600 –> 00:01:32,799
45
00:01:32,799 –> 00:01:34,799
ارائه
46
00:01:34,799 –> 00:01:36,560
کند. کمی بیش از حد در
47
00:01:36,560 –> 00:01:38,079
این مورد، احتمالاً در واقعیت این کار را به
48
00:01:38,079 –> 00:01:38,640
این روش انجام
49
00:01:38,640 –> 00:01:40,720
نمیدهید، اما برای کتابخانه threading لازم است،
50
00:01:40,720 –> 00:01:42,320
بنابراین برای ثابت نگه داشتن کد،
51
00:01:42,320 –> 00:01:45,119
من این کار را به این صورت انجام دادم،
52
00:01:45,119 –> 00:01:46,720
اجازه دهید به پایین اسکرول کنم تا بتوانید ببینید
53
00:01:46,720 –> 00:01:50,000
این برنامه چگونه است.
54
00:01:50,720 –> 00:01:53,680
لیستی در خط 21 نامیده می شود که از 80
55
00:01:53,680 –> 00:01:54,320
نسخه
56
00:01:54,320 –> 00:01:56,399
از دو وب سایت مختلف تشکیل شده است که
57
00:01:56,399 –> 00:01:59,360
کتابخانه درخواست ها قرار است خط 26 را واکشی کند و
58
00:01:59,360 –> 00:02:02,159
به شما می گوید که
59
00:02:02,159 –> 00:02:03,119
خط
60
00:02:03,119 –> 00:02:06,240
شروع 27 از تایمر شروع می شود.
61
00:02:06,240 –> 00:02:08,160
به طور کامل تمام
62
00:02:08,160 –> 00:02:10,800
سایت های داخل لیست سایت ها را دانلود می کند
63
00:02:10,800 –> 00:02:13,520
خط 29 محاسبه می کند که چقدر طول
64
00:02:13,520 –> 00:02:14,640
کشید تا اجرا شود
65
00:02:14,640 –> 00:02:16,400
و سپس خط 30 چند آمار را چاپ می کند
66
00:02:16,400 –> 00:02:18,480
67
00:02:18,480 –> 00:02:21,120
بیایید ببینیم این برنامه در
68
00:02:21,120 –> 00:02:23,599
حال
69
00:02:23,599 –> 00:02:26,959
اجراست.
70
00:02:26,959 –> 00:02:29,680
j و r زمانی را نشان می دهد که
71
00:02:29,680 –> 00:02:31,760
سایت jython یا سایت پایتون واقعی از
72
00:02:31,760 –> 00:02:33,120
73
00:02:33,120 –> 00:02:35,440
این برنامه همزمان دانلود می شود که به طور متناوب
74
00:02:35,440 –> 00:02:37,760
بین دو
75
00:02:37,760 –> 00:02:40,800
سایت در حال بارگیری است. نتیجه نهایی این است که 160 سایت در
76
00:02:40,800 –> 00:02:41,280
حدود
77
00:02:41,280 –> 00:02:44,480
14 ثانیه اجرا شده است.
78
00:02:44,480 –> 00:02:45,599
79
00:02:45,599 –> 00:02:48,720
زمان برای آن بسیار متفاوت است و
80
00:02:48,720 –> 00:02:50,400
بسیاری از آن بستگی به سرعت
81
00:02:50,400 –> 00:02:51,360
پاسخ سایت ها
82
00:02:51,360 –> 00:02:53,120
و سرعت تصمیم رابط شبکه در
83
00:02:53,120 –> 00:02:55,599
رایانه من برای پاسخ دادن دارد
84
00:02:55,599 –> 00:02:57,760
.
85
00:02:57,760 –> 00:03:01,440
86
00:03:02,159 –> 00:03:04,959
خاموش
87
00:03:04,959 –> 00:03:06,959
شما به دو واردات دیگر نیاز خواهید داشت که
88
00:03:06,959 –> 00:03:09,280
هر دو بخشی از خط کتابخانه استاندارد هستند.
89
00:03:09,280 –> 00:03:10,080
90
00:03:10,080 –> 00:03:12,879
91
00:03:12,879 –> 00:03:13,280
92
00:03:13,280 –> 00:03:16,720
93
00:03:16,720 –> 00:03:18,080
محیط cal برای
94
00:03:18,080 –> 00:03:20,239
هر یک از رشته ها بعداً بیشتر توضیح خواهم داد
95
00:03:20,239 –> 00:03:22,159
96
00:03:22,159 –> 00:03:24,400
روش سایت دانلود در خط
97
00:03:24,400 –> 00:03:27,280
15 تغییری نکرده است مانند قبل است
98
00:03:27,280 –> 00:03:28,799
اما برای استفاده از کتابخانه threading
99
00:03:28,799 –> 00:03:30,640
100
00:03:30,640 –> 00:03:33,760
getsession باید کمی متفاوت باشد خط 9
101
00:03:33,760 –> 00:03:34,879
تعریف می کند تابع
102
00:03:34,879 –> 00:03:38,000
get session در داخل این تابع خط
103
00:03:38,000 –> 00:03:38,799
11
104
00:03:38,799 –> 00:03:40,799
جلسه را از کتابخانه درخواست ها دریافت می کند
105
00:03:40,799 –> 00:03:42,159
اما این کار را
106
00:03:42,159 –> 00:03:44,640
فقط در صورتی انجام می دهد
107
00:03:44,640 –> 00:03:46,480
که قبل
108
00:03:46,480 –> 00:03:48,560
از ترکیب استفاده از محیط رشته
109
00:03:48,560 –> 00:03:50,000
در خط
110
00:03:50,000 –> 00:03:52,480
7 و انتساب جلسه درخواست
111
00:03:52,480 –> 00:03:53,040
112
00:03:53,040 –> 00:03:55,760
به آن Thread local ایجاد نشده باشد. محیط در خط 11 به شما امکان می
113
00:03:55,760 –> 00:03:57,360
دهد تعداد رشته ها را در
114
00:03:57,360 –> 00:03:58,000
برنامه تغییر دهید
115
00:03:58,000 –> 00:04:00,959
و چیزی را نشکنید و این تضمین می کند
116
00:04:00,959 –> 00:04:02,640
که در هر رشته فقط یک جلسه درخواست وجود دارد
117
00:04:02,640 –> 00:04:05,760
اکنون بیایید
118
00:04:05,760 –> 00:04:07,439
روش دانلود همه سایت ها را
119
00:04:07,439 –> 00:04:10,480
ببینیم این کمی تغییر کرده است
120
00:04:10,720 –> 00:04:12,879
کتابخانه آینده همزمان
121
00:04:12,879 –> 00:04:14,159
شامل کلاسی به نام thread است.
122
00:04:14,159 –> 00:04:17,279
اجرای pool این چیزی است که تعیین
123
00:04:17,279 –> 00:04:19,440
می کند چند رشته وجود دارد که می توانید
124
00:04:19,440 –> 00:04:21,759
125
00:04:21,759 –> 00:04:24,479
با استفاده از عبارت with key و سپس آن را به عنوان مدیر زمینه نمونه سازی کنید.
126
00:04:24,479 –> 00:04:24,880
127
00:04:24,880 –> 00:04:28,160
مجری یک روش نقشه دارد که یک
128
00:04:28,160 –> 00:04:31,680
تابع را به برخی از داده ها نگاشت می کند، هر یک از URL های
129
00:04:31,680 –> 00:04:33,040
موجود در لیست سایت ها
130
00:04:33,040 –> 00:04:35,840
به یک تابع نگاشت می شوند و مجری رشته
131
00:04:35,840 –> 00:04:37,280
تعیین می کند
132
00:04:37,280 –> 00:04:39,280
که چه زمانی آن تابع فراخوانی شود که
133
00:04:39,280 –> 00:04:40,479
134
00:04:40,479 –> 00:04:42,880
تعداد حداکثر کارگران در
135
00:04:42,880 –> 00:04:44,479
تعریف
136
00:04:44,479 –> 00:04:46,720
اجرا تغییر می کند. چه تعداد
137
00:04:46,720 –> 00:04:48,720
رشته همزمان
138
00:04:48,720 –> 00:04:50,880
با اتمام یک تابع فعال هستند، رشته
139
00:04:50,880 –> 00:04:52,800
مجدداً در Pool قرار می گیرد
140
00:04:52,800 –> 00:04:55,360
و سپس مجری
141
00:04:55,360 –> 00:04:57,280
قطعه داده بعدی را به رشته موجود بعدی اختصاص
142
00:04:57,280 –> 00:05:00,160
143
00:05:00,160 –> 00:05:03,039
144
00:05:04,240 –> 00:05:06,560
می دهد. متفاوت است، بنابراین با برخی
145
00:05:06,560 –> 00:05:08,400
تغییرات جزئی در
146
00:05:08,400 –> 00:05:10,240
اسکریپت، آن را از همزمان
147
00:05:10,240 –> 00:05:11,759
به رشته ای تغییر
148
00:05:11,759 –> 00:05:15,280
دادم، اکنون اجازه دهید این را در عمل به شما نشان دهم
149
00:05:18,240 –> 00:05:20,560
وای که تقریباً 10 بار به طور قابل توجهی سریعتر از
150
00:05:20,560 –> 00:05:22,560
قبل
151
00:05:22,560 –> 00:05:24,400
است، صادقانه بگویم این یک نوع خوش شانسی است
152
00:05:24,400 –> 00:05:26,560
که یکی از بهترین زمان ها است. من دیدم
153
00:05:26,560 –> 00:05:38,240
اجازه دهید دوباره آن را امتحان کنم فقط برای اینکه به شما نشان دهم
154
00:05:38,240 –> 00:05:40,000
خوب نیست، این بار هفت و نیم
155
00:05:40,000 –> 00:05:42,080
ثانیه هنوز هم چشمگیر است، هرچند
156
00:05:42,080 –> 00:05:43,840
که اجرای همگام سازی را تقریبا دو برابر می
157
00:05:43,840 –> 00:05:45,759
کند برنامه hronous
158
00:05:45,759 –> 00:05:48,240
یکی از مواردی که در اینجا باید به آن توجه کرد این است که
159
00:05:48,240 –> 00:05:49,120
الگوهای js و
160
00:05:49,120 –> 00:05:52,240
rs در برنامه همگام
161
00:05:52,240 –> 00:05:56,319
همیشه j بود، سپس r j و سپس r در این برنامه
162
00:05:56,319 –> 00:05:59,039
ای