برنامه نویسی

Node.js تک رشته ای نیست – انجمن DEV

Node.js خود تک رشته ای نیست.

توسعه دهندگان Node.js اغلب حلقه رویداد اصلی تک رشته ای را با Node.js اشتباه می گیرند.

هنگامی که یک برنامه Node.js در حال اجرا است، به طور خودکار 4 رشته در زیر مجموعه کارگر برای مسدود کردن وظایف ایجاد می کند.

بنابراین در هر زمان معین، حداقل پنج رشته وجود دارد.

این استخر کارگران توسط Libuv مدیریت می شود.

وظایف مسدود کردن عمدتاً به I/O-Bound و CPU فشرده هستند.

  1. I/O محدود شده است
    آ. DNS: dns.lookup()، dns.lookupService()
    ب سیستم فایل به جز fs.FSWatcher()

  2. وظایف فشرده CPU
    آ. برخی از روش های رمزنگاری مانند crypto.pbkdf2()، crypto.scrypt()، crypto.randomBytes()، crypto.randomFill()، crypto.generateKeyPair()

ب همه APIهای zlib غیر از آنهایی که به طور همزمان از thread pool libuv استفاده می کنند.

حلقه اصلی رشته/رویداد طبق معمول برای اجرای جاوا اسکریپت کار می کند، اما کارگر pool از مسدود کردن وظایف حلقه اصلی مراقبت می کند.

بنابراین، Node.js نباید اشتباه گرفته شود.

با تشکر برای خواندن.

من به مفاهیم اساسی و چگونگی کار کردن همه چیز در زیر کاپوت می پردازم. می‌توانید با من، علی رضا، در اینجا و در لینکدین ارتباط برقرار کنید یا دنبال کنید تا با این سفر کنار بیایید.

توضیحات تصویر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا