Tokio

Tokio provides:

  • یک runtime از نوع multi-thread برای اجرای کدهای ناهمزمان(asynchronous).
  • یک asynchronous version کتابخانه‌ای استاندارد است.
  • اکوسیستم بزرگی از کتابخانه‌ها.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

  • با ماکرو tokio::main اکنون می‌توانیم main را async کنیم.

  • تابع spawn یک “task” جدید و همزمان ایجاد می‌کند.

  • توجه: spawn یک Future می‌گیرد، شما .await را در count_to صدا نمی‌زنید.

Further بررسی:

  • چرا count_to (معمولا) به مقدار ۱۰ نمی‌رسد؟ این نمونه‌ای از لغو async است. tokio::spawn یک handle را برمی‌گرداند که می‌توان مدتی منتظر ماند تا تمام شود.

  • به جای spawn مورد count_to(10).await» را امتحان کنید.

  • منتظر کار برگشتی از tokio::spawn باشید.