در این مطلب، ویدئو مقدمه ای بر asyncio با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:11:15
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:02,190
سلام بچه ها به ویدیوی سوم از
2
00:00:02,190 –> 00:00:04,319
سری من در مورد برنامه نویسی همزمان در
3
00:00:04,319 –> 00:00:06,930
پایتون خوش آمدید در آخرین ویدیوی ما سعی کردیم
4
00:00:06,930 –> 00:00:09,179
مفهوم روتین های اصلی را
5
00:00:09,179 –> 00:00:10,620
که یکی از اساسی ترین
6
00:00:10,620 –> 00:00:13,860
مؤلفه های برنامه نویسی
7
00:00:13,860 –> 00:00:15,900
همزمان هستند درک کنیم، همچنین فهمیدیم که چگونه
8
00:00:15,900 –> 00:00:18,690
روتین های calcio را در پایتون تعریف کنیم. با استفاده از async
9
00:00:18,690 –> 00:00:21,300
syntax آن و اکنون زمان آن فرا رسیده است
10
00:00:21,300 –> 00:00:23,510
که یاد بگیریم چگونه آن روال های اصلی را
11
00:00:23,510 –> 00:00:27,510
با استفاده از کتابخانه async i/o در پایتون اجرا کنیم، بنابراین
12
00:00:27,510 –> 00:00:31,490
بدون هیچ تاخیری اجازه دهید
13
00:00:33,510 –> 00:00:36,340
قبل از یادگیری نحوه استفاده از async IO شروع کنیم، اجازه
14
00:00:36,340 –> 00:00:38,350
دهید سعی کنیم اصول اولیه را درک کنیم. مفاهیم
15
00:00:38,350 –> 00:00:40,750
مربوط به async IO، بنابراین در اینجا یک
16
00:00:40,750 –> 00:00:42,910
تعریف بسیار ساده است که خائن به async IO است، بنابراین
17
00:00:42,910 –> 00:00:45,309
async IO یک کتابخانه ساخته شده در پایتون است
18
00:00:45,309 –> 00:00:47,469
که به شما کمک می کند
19
00:00:47,469 –> 00:00:49,690
کدهای ناهمزمان و همکاری همزمان را در یک
20
00:00:49,690 –> 00:00:51,790
سبک ترتیبی بنویسید، بنابراین اکنون یک عبارت جهنمی
21
00:00:51,790 –> 00:00:53,680
است که حاوی یک
22
00:00:53,680 –> 00:00:56,379
اطلاعات زیادی به سبک بسیار مختصر نوشته شده
23
00:00:56,379 –> 00:00:58,690
است، بنابراین اجازه دهید سعی کنیم این
24
00:00:58,690 –> 00:01:01,540
عبارت خاص را یکی یکی رمزگشایی کنیم، بنابراین
25
00:01:01,540 –> 00:01:03,309
اولین چیز این است که به شما در نوشتن خلاصه کمک می کند.
26
00:01:03,309 –> 00:01:06,160
برنامه های فوری درست است، بنابراین ما
27
00:01:06,160 –> 00:01:08,259
قبلاً می دانیم چه چیزی همزمان است، بنابراین فقط
28
00:01:08,259 –> 00:01:10,210
برای تازه کردن درک خود از
29
00:01:10,210 –> 00:01:12,159
همزمان، اجازه دهید سعی
30
00:01:12,159 –> 00:01:14,500
کنیم دوباره به آن نگاه کنیم، بنابراین همزمانی
31
00:01:14,500 –> 00:01:16,450
چیزی نیست جز راهی برای مقابله با
32
00:01:16,450 –> 00:01:19,270
چندین چیز در یک زمان، بنابراین زمانی که یک
33
00:01:19,270 –> 00:01:22,090
برنامه را همزمان صدا می کنیم چندین کار
34
00:01:22,090 –> 00:01:25,330
در حال اجرا هستند و در چرخه زندگی یکدیگر همپوشانی دارند،
35
00:01:25,330 –> 00:01:28,810
به این معنی که در حالی که
36
00:01:28,810 –> 00:01:31,270
ما در حال اجرای یک کار هستیم، میتوانیم
37
00:01:31,270 –> 00:01:33,759
از وظیفه آنها به کار دیگری
38
00:01:33,759 –> 00:01:35,800
سوئیچ کنیم و پس از مدتی دوباره میتوانیم
39
00:01:35,800 –> 00:01:38,409
به وظیفه اصلی خود برگردیم و این تغییر
40
00:01:38,409 –> 00:01:41,200
ممکن است اتفاق بیفتد. در طول
41
00:01:41,200 –> 00:01:43,869
اجرای این مسیرها اتفاق بیفتد، بنابراین منظور از
42
00:01:43,869 –> 00:01:46,659
همزمانی همین است و بله،
43
00:01:46,659 –> 00:01:48,280
موازی سازی که ما می دانیم متفاوت است،
44
00:01:48,280 –> 00:01:50,829
بنابراین اکنون که همزمانی است و حالا
45
00:01:50,829 –> 00:01:52,960
دومین مورد این است که async IO به شما کمک می کند
46
00:01:52,960 –> 00:01:55,060
برنامه های ناهمزمان بنویسید پس چه
47
00:01:55,060 –> 00:01:57,759
چیزی ناهمزمان است. بنابراین ناهمزمان
48
00:01:57,759 –> 00:02:00,670
اساساً به معنای ناهمزمان است به این معنی که
49
00:02:00,670 –> 00:02:02,409
شما قرار نیست منتظر
50
00:02:02,409 –> 00:02:05,710
یک فراخوانی تابع خاص بمانید، بنابراین
51
00:02:05,710 –> 00:02:07,119
بیایید در برنامه خود بگوییم آنجا e
52
00:02:07,119 –> 00:02:09,940
تابعی است که در آنجا فراخوانی می شود و
53
00:02:09,940 –> 00:02:12,459
شما منتظر مقدار برگشتی
54
00:02:12,459 –> 00:02:14,049
آن تابع نیستید و
55
00:02:14,049 –> 00:02:16,239
هر زمان که نتیجه فراخوانی تابع را دریافت کردید برنامه
56
00:02:16,239 –> 00:02:18,459
خود را ادامه می دهید برای راحتی خود از آن استفاده می
57
00:02:18,459 –> 00:02:20,170
کنید بنابراین این
58
00:02:20,170 –> 00:02:22,870
رفتار خاص جایی که شما منتظر
59
00:02:22,870 –> 00:02:25,000
نمیمانید تا بذر کردن، رفتار ناهمزمان نامیده میشود
60
00:02:25,000 –> 00:02:27,640
و به این ترتیب در واقع
61
00:02:27,640 –> 00:02:30,010
مدت زمان کلی برنامه شما
62
00:02:30,010 –> 00:02:32,470
کوتاهتر میشود که بسیار خوب است، اما در
63
00:02:32,470 –> 00:02:34,120
مورد همزمان اتفاقی که میافتد این است که
64
00:02:34,120 –> 00:02:37,030
شما به قسمت بعدی
65
00:02:37,030 –> 00:02:38,620
نمیروید. برنامه شما تا زمانی که قسمت قبلی
66
00:02:38,620 –> 00:02:40,569
کامل شود، به این ترتیب
67
00:02:40,569 –> 00:02:42,580
مدت زمان کلی
68
00:02:42,580 –> 00:02:44,769
در مقایسه با برنامه های ناهمزمان کمی طولانی تر می شود، بنابراین
69
00:02:44,769 –> 00:02:46,120
این تفاوت است و
70
00:02:46,120 –> 00:02:48,129
همانطور که می دانیم فکر می کنم IO به شما کمک می کند تا
71
00:02:48,129 –> 00:02:51,849
برنامه های ناهمزمان بنویسید و در آخر
72
00:02:51,849 –> 00:02:53,319
ما چیزی به نام داریم.
73
00:02:53,319 –> 00:02:55,830
کد تعاونی پس اجازه دهید ببینیم که در
74
00:02:55,830 –> 00:02:58,569
واقع
75
00:02:58,569 –> 00:03:00,580
چندوظیفه ای تعاونی چیست، بنابراین دو نوع
76
00:03:00,580 –> 00:03:03,250
چندوظیفه ای وجود دارد که ما می دانیم که وجود دارد.
77
00:03:03,250 –> 00:03:04,209
78
00:03:04,209 –> 00:03:05,560
چیزی به نام چندوظیفه پیشگیرانه چیزی به نام چندوظیفگی پیشگیرانه وجود دارد،
79
00:03:05,560 –> 00:03:07,629
بنابراین در یک
80
00:03:07,629 –> 00:03:09,190
چندوظیفه پیشگیرانه شما یک
81
00:03:09,190 –> 00:03:11,829
زمانبندی دارید که زمانبندی
82
00:03:11,829 –> 00:03:15,760
مسئول تغییر کنترل بین
83
00:03:15,760 –> 00:03:17,260
وظایف مختلف است، بنابراین فرض کنید شما
84
00:03:17,260 –> 00:03:19,480
سه وظیفه دارید: زرد و آبی قرمز و
85
00:03:19,480 –> 00:03:21,040
سپس وجود دارد. چیزی به نام
86
00:03:21,040 –> 00:03:23,470
زمانبند، برنامه اصلی دیگری که
87
00:03:23,470 –> 00:03:26,079
تصمیم میگیرد کدام کار باید در
88
00:03:26,079 –> 00:03:27,670
یک نقطه زمانی خاص اجرا شود، بنابراین
89
00:03:27,670 –> 00:03:29,410
برشهای زمانی مساوی را به تمام وظایف یک
90
00:03:29,410 –> 00:03:31,390
به یک میدهد و به اجرای آنها ادامه میدهند، بنابراین به
91
00:03:31,390 –> 00:03:33,190
این ترتیب، سوئیچهای متنی که در آن
92
00:03:33,190 –> 00:03:35,019
اتفاق میافتد، تغییر میکند. این مورد خاص در
93
00:03:35,019 –> 00:03:37,150
واقع بسیار ناخوشایند است و
94
00:03:37,150 –> 00:03:39,700
شما هیچ کنترلی در مورد زمانی که
95
00:03:39,700 –> 00:03:42,609
برنامه نویس می خواهد از یک کار به کار
96
00:03:42,609 –> 00:03:44,829
دیگر تغییر کند ندارید، اما اتفاقی که با async IO می افتد
97
00:03:44,829 –> 00:03:46,420
این است که به شما کنترل کامل می دهد
98
00:03:46,420 –> 00:03:51,160
که چه زمانی می خواهید تغییر زمینه را انجام دهید.
99
00:03:51,160 –> 00:03:52,870
یک کار را به
100
00:03:52,870 –> 00:03:54,549
دیگری واگذار کنید، بنابراین فرض کنید که کار را قرمز انجام می دهید
101
00:03:54,549 –> 00:03:57,099
و هر زمان که احساس
102
00:03:57,099 –> 00:03:59,019
کردید باید به کار دیگری بروید،
103
00:03:59,019 –> 00:04:00,760
تصمیم می گیرید کلاه و به سمت آن کار حرکت میکنید
104
00:04:00,760 –> 00:04:02,889
، مثلاً زرد، آن را انجام میدهید،
105
00:04:02,889 –> 00:04:04,989
سپس به رنگ آبی میروید، بنابراین این
106
00:04:04,989 –> 00:04:06,310
مورد خاصی است که ما
107
00:04:06,310 –> 00:04:08,560
آن را چندوظیفهای مشارکتی مینامیم که به سادگی
108
00:04:08,560 –> 00:04:09,760
به این معنی است که نیازی به
109
00:04:09,760 –> 00:04:14,079
زمانبندی نیست، در واقع خود وظایف
110
00:04:14,079 –> 00:04:17,228
با یکدیگر همکاری میکنند.
111
00:04:17,228 –> 00:04:19,149
این همان چیزی است که در صورت چندوظیفهای مشترک اتفاق میافتد،
112
00:04:19,149 –> 00:04:21,279
بنابراین همه این
113
00:04:21,279 –> 00:04:24,190
سه چیز باعث ایجاد همگامسازی میشوند.
114
00:04:24,190 –> 00:04:26,860
115
00:04:26,860 –> 00:04:29,349
116
00:04:29,349 –> 00:04:31,449
117
00:04:31,449 –> 00:04:33,729
شما
118
00:04:33,729 –> 00:04:35,949
نیاز به رفتار ناهمزمان دارید که مردم از
119
00:04:35,949 –> 00:04:38,830
async IO استفاده می کنند و در مکان های مختلف کمک می کند،
120
00:04:38,830 –> 00:04:41,470
به عنوان مثال در شبکه
121
00:04:41,470 –> 00:04:44,110
و سرورهای وب، همچنین در
122
00:04:44,110 –> 00:04:46,150
کتابخانه های اتصال پایگاه داده استفاده می شود و
123
00:04:46,150 –> 00:04:47,949
همچنین در صف های وظایف توزیع شده استفاده می شود، بنابراین
124
00:04:47,949 –> 00:04:50,289
همه اینها برخی از برنامه های کاربردی در
125
00:04:50,289 –> 00:04:53,130
دسترس بودن async هستند.
126
00:04:54,000 –> 00:04:56,590
خوب پس حالا اجازه دهید به
127
00:04:56,590 –> 00:04:58,360
سوال بعدی برویم که این است که چگونه یک
128
00:04:58,360 –> 00:05:00,340
روال هسته پایتون را اجرا کنم تا
129
00:05:00,340 –> 00:05:03,040
بتوانم یک روتی اصلی را اجرا کنم. استفاده از async i/o
130
00:05:03,040 –> 00:05:05,290
چیزی است که ما نیاز داریم چیزی است که به عنوان
131
00:05:05,290 –> 00:05:07,480
حلقه رویداد نامیده میشود، بنابراین حلقه رویداد در واقع
132
00:05:07,480 –> 00:05:09,550
یک چیز بسیار اساسی است که در
133
00:05:09,550 –> 00:05:12,130
هسته هر یک از برنامههای کاربردی وجود دارد، اگر
134
00:05:12,130 –> 00:05:15,310
بخواهید هر روال اصلی را با استفاده از async i/o اجرا کنید.
135
00:05:15,310 –> 00:05:17,110
شما به چیزی به نام حلقه رویداد نیاز دارید،
136
00:05:17,110 –> 00:05:21,100
حلقه رویداد چیزی نیست جز یک رشته
137
00:05:21,100 –> 00:05:24,370
که می تواند تمام وظایفی را که
138
00:05:24,370 –> 00:05:26,830
به آن منتقل می شود اجرا کند، بنابراین اکنون برای
139
00:05:26,830 –> 00:05:29,050
اجرای یک روال اصلی چیزی که من نیاز دارم یک
140