pfx در برنامه نویسی موازی در دات نت
در این ویدئو به بررسی PFX میپردازیم. PFX یک کتابخانهای است که توسط Microsoft به .Net اضافه شده برای برنامهنویسی موازی. با استفاده از این کتابخانه، ما به راحتی میتوانیم از برنامهنویسی موازی استفاده کنیم بدون اینکه درگیر پیچیدگیهای thread ها شویم، و تمرکز اصلی ما روی business اپلیکیشنمان باشد. این کتابخانه به ما امکان میدهد به راحتی از امکانات برنامهنویسی موازی استفاده کنیم.
اما چرا میخواهیم از برنامهنویسی موازی استفاده کنیم؟
تا قبل از سال 2004، CPUهایی که برای کامپیوترها ساخته میشدند روز به روز قویتر میشدند. CPUها تکهستهای بودند و برنامهای که در آن زمان قویتر میشد نیازی نبود تغییری در نحوه کدنویسی آن ایجاد شود. چرا؟ چون CPUها قویتر میشدند و برنامهها به راحتی میتوانستند از قدرت CPUهای جدید بهرهبرداری کنند و با performance بالاتر انجام دهند.
اما از سال 2004 به بعد به دلیل مشکلاتی که وجود داشت، دیگر نمیتوانستند CPUها را بزرگتر کنند و از راهکار جدیدی استفاده کردند. شرکتهایی که در ساخت پردازنده فعالیت داشتند، به جای اینکه CPUها را قویتر و بزرگتر کنند، هستههای بیشتری به CPUها اضافه کردند و از سال 2004 به بعد CPUهای چندهستهای ارائه شدند.
زمانی که CPUچرا اپلیکیشنهای وب به صورت پیشفرض از CPUهای چند هستهای بهرهبرداری میکنند؟ به این دلیل که این برنامهها طوری طراحی شدهاند که هر درخواستی که از کاربر به سرور میرسد، در یک نخ (thread) جداگانه اجرا میشود. این باعث میشود که بدون نیاز به تغییر کد، اپلیکیشنهای وب بهرهبرداری کنند. اما در مورد برنامههای تحت دسکتاپ مانند Windows Forms، این برنامهها به صورت یکنخی ایجاد میشوند و برای بهرهبرداری از تمام تواناییهای CPUهای چند هستهای، باید برنامهنویسی موازی انجام دهند.
*************************************
در مورد برنامهنویسی وب، هر درخواست کاربر به صورت پیشفرض در یک نخ جداگانه پردازش میشود. اما در بخش پشتصحنه، هنگامی که به لایهی اپلیکیشن میرسیم، ممکن است کارهایی باشد که باید به صورت موازی انجام شوند. به عنوان مثال، علاوه بر نخهایی که به صورت جدا برای هر کاربر ساخته میشوند، شما خودتان نیاز دارید که نخهای بیشتری ایجاد کنید و کارهای یک درخواست کاربر را به صورت موازی انجام دهید. پس برنامهنویسی موازی نه تنها مختص برنامههای دسکتاپ است بلکه میتوان برای وب اپلیکیشنها نیز از آن استفاده کرد.
برای انجام برنامهنویسی موازی، دو راهکار وجود دارد:
Data Parallelism
Task Parallelism
در Data Parallelism، دادهها به چند بخش تقسیم میشوند و هر بخش دریک نخ یا یک هسته CPU انجام میشود. به عنوان مثال، فرض کنید لیستی از 100 هزار کاربر دارید و میخواهید برای همهی آنها ایمیل ارسال کنید. میتوانید دادههای کاربران را به چندین بخش تقسیم کرده و هر بخش را به یک نخ واگذار کنید تا به صورت موازی ایمیلها را ارسال کنند.
اما در Task Parallelism، کارهای مختلف را جدا میکنیم و هر کدام را در یک تسک (task) جداگانه انجام میدهیم. به عنوان مثال، فرض کنید در یک پروژه بعد از ثبت سفارش، میخواهید چند کاری که به هم ربطی ندارند انجام دهید. مثلا ارسال پیامک به کاربر، ارسال ایمیل به مدیریت، ثبت اطلاعات در نرمافزار CRM، ثبت اطلاعات در نرمافزار حسابداری و غیره. در این مورد، از روش Data Parallelism نمیتوانید استفاده کنید زیرا لیستی از دادهها ندارید که بتوانید آنها را تقسیم کنید و به هر هسته CPU بدهید. در اینجا به جای آن، تسکهای خود را تقسیم میکنید، یعنی هر کار را در یک تسک جداگانه قرار میدهید.
-***************************************
👨💻✔️دوره ستارگان سی شارپ:bugeto.net/courses/csharp-stars
****************************************
ما رو در آدرسهای زیر میتونی پیدا کنی:
Website:
bugeto.net/
KZread:
@bugeto-net9207
Instagram:
/ bugeto_net
Telegram:
t.me/bugeto
Aparat:
www.aparat.com/bugeto
Пікірлер: 1
❤🎉🎉