در این پست قصد داریم تا روش پردازش همزمان موازی با استفاده اسز Paraller را به روش صحیح توضیح دهیم.
با رشد پردازنده های چند هسته، یکی از نیاز های روزافزون برنامه نویسان، استفاده صحیح از قابلیت اجرای موازی می باشد، اجرای موازی برنامه ها به توسعه دهندگان حرفه ای کمک می کند تا بالاترین کارایی را از برنامه های خود به عرصه نمایش قرار دهند، در این بخش سعی داریم تا روش برنامه نویسی موازی را به صورت صحیح توضیح دهیم.
یکی از کلاس های پر استفاده کلاس Paraller می باشد که از طریق آن می توان با کالکشن ها اجراهای موازی ساخت.
فرض کنید قصد دارید تا یک مجموعه یا کالکشن 2 هزارتایی از درخواست هارا به یک سرور ارسال کنید، در پست های قبلی توضیح دادیم که بهترین گزینه برای ارسال درخواست ها روش همزمان می باشد، اما ارسال همزمان 2 هزار درخواست همزمان، سبب بروز مشکلات بسیار زیادی هم برای برنامه شما، هم سیستم شما، هم شبکه و هم سرور می شود، در واقع هندل کردن این تعداد کار بسیار سخت و پر ریسکی است، چه بسا این درخواست ها نیز بسیار مهم هم باشند.
در روش Paraller می توانیم با استفاده از دو loop یا حلقه (for و foreach) درخواست ها را هندل یا به نحوی مدیریت کنیم، می توانیم به جای ارسال همه 2 هزار درخواست که سبب بروز مشکلات بسیار زیادی نیز می شوند، درخواست ها را بسته به پهنای باند اینترنت مورد استفاده تنظیم کنیم،
به عنوان مثال با هربار چرخش حلقه ، 10 درخواست صف شود و صبر کند تا 10 درخواست بطور کامل و مدیریت شده ارسال و بدست سرور برسد، سپس 10 درخواست بعدی و به همین ترتیب 10 تا 10 تا درخواست ارسال شود تا مجوعا 2 هزار درخواست تکمیل شود.
از مزایای استفاده از این روش
- ارسال خودکار
- ایجاد صف به تعداد مورد نظر مثلا 10 تایی یا حتی بیشتر
- مدیریت ارسال ها و اطمینان از ارسال درخواست ها
- جلوگیری از تصادم و اصطلاحات Over flowing سیستم
- جلوگیری از مسدود شدن توسط سرور
- ارسال امن و ترتیبی درخواست ها
- قابلیت جلوگیری از هنگ کردن سیستم
- امکان مدیریت خطا
- بهترین روش برای ارسال های بسیار زیاد
نمونه کد و مثال ارائه خواهد شد.