همزمانی و async / awitwa

ساخت وبلاگ

جزئیات مربوط به نحو ASYNC DEF برای توابع عملکرد مسیر و برخی پیش زمینه در مورد کد ناهمزمان ، همزمانی و موازی بودن.

با عجله؟¶

tl ؛ dr:

اگر از کتابخانه های شخص ثالث استفاده می کنید که به شما می گویند با آنها در انتظار تماس بگیرید ، مانند:

نتایج = در انتظار مقداری_براس() 

سپس ، عملکردهای عملکرد مسیر خود را با Async def مانند: اعلام کنید:

APP.گرفتن('/') درز دنباله read_results():  نتایج = در انتظار مقداری_براس() برگشت نتایج 

فقط می توانید از توابع ایجاد شده با Async Def استفاده کنید.

اگر از یک کتابخانه شخص ثالث استفاده می کنید که با چیزی ارتباط برقرار می کند (یک بانک اطلاعاتی ، API ، سیستم فایل و غیره) و پشتیبانی از استفاده از Await را ندارد ، (در حال حاضر این مورد برای اکثر کتابخانه های پایگاه داده است) ، سپس اعلام کنیدعملکرد مسیر شما به طور عادی ، با DEF ، مانند:

APP.گرفتن('/') دنباله نتایج():  نتایج = مقداری_براس() برگشت نتایج 

اگر درخواست شما (به نوعی) مجبور نیست با هر چیز دیگری ارتباط برقرار کند و منتظر پاسخ آن باشد ، از Async def استفاده کنید.

اگر فقط نمی دانید ، از Def Normal استفاده کنید.

توجه: شما می توانید DEF و ASYNC DEF را در توابع عملکرد مسیر خود به همان اندازه که نیاز دارید مخلوط کنید و هر یک را با استفاده از بهترین گزینه برای شما تعریف کنید. Fastapi کار درستی را با آنها انجام خواهد داد.

به هر حال ، در هر یک از موارد فوق ، Fastapi هنوز هم به صورت غیر همزمان کار خواهد کرد و بسیار سریع خواهد بود.

اما با دنبال کردن مراحل فوق ، قادر خواهد بود برخی بهینه سازی های عملکرد را انجام دهد.

جزییات فنی¶

نسخه های مدرن پایتون از "کد ناهمزمان" با استفاده از چیزی به نام "Coroutines" پشتیبانی می کند ، با Async و Syntax.

بیایید این عبارت را بر اساس قسمت های بخش های زیر مشاهده کنیم:

کد غیر همزمان

کد ناهمزمان فقط به این معنی است که زبان مدرسه فارکس معامله گر ایرانی...

ما را در سایت مدرسه فارکس معامله گر ایرانی دنبال می کنید

برچسب : نویسنده : صالح پور مهروز بازدید : 27 تاريخ : پنجشنبه 19 مرداد 1402 ساعت: 13:59