PDA

View Full Version : سوال: استفاده از Threading در MVC



OmMiD_MtWo
شنبه 18 اردیبهشت 1395, 10:20 صبح
با سلام
چه زمانی باید از بحث Threading در کدنویسی استفاده کرد؟ به عنوان مثال هنگام استفاده از CRUD آیا استفاده از Threading الزامی است؟ چه زمانی امکان خطا در برنامه های تحت وب همزمان وجود دارد که باید از Threading استفاده نمود؟ اگر کاربری در حال ویرایش یک مطلب باشد و کاربر دیگری در همان لحظه بخواهد آن را حذف کند آیا تداخل در کدنویسی ایجاد میکند؟ کدنویسی Thread شده چیست؟
باتشکر

hakim22
شنبه 18 اردیبهشت 1395, 22:03 عصر
برای استفاده از برنامه نویسی موازی باید از Task parallel library یا TPL در #C استفاده کنید.

کلمات کلیدی task و await در تعریف متدهای موازی مورد استفاده قرار می گیرد.

به طور کلی سعی کنید از این ابزار کمترین استفاده را داشته باشید. در برنامه نویسی وب موارد کمی است که استفاده از این روش باعث بهبود سرعت یا بالا رفتن کارایی میشود.

اگر به یک وب سرویس خارجی وصل میشوید یا عملیات ذخیره و بازیابی فایل در هارد سرور انجام می دهید این ابزار کمک زیادی به شما می کند. ولی برای کار با دیتابیس و CRUD از این روش استفاده نکنید.
تنها زمانی این روش در CRUD کارایی دارد که از دو دیتابیس جدا از هم آن هم در دو سرور جدا از هم مورد استفاده قرار گیرند. async کردن متدهای مربوط کار در یک دیتابیس به هیچ وجه کار درستی نیست.

تعداد thread هایی که در سرور قابل ایجاد است محدود است. و اگر برای هر درخواست قرار باشد چند thread ایجاد شود ظرفیت سرور خیلی زودتر از حالت sync به پایان میرسد. در واقع حافظه ی سرور بی جهت سر ریز میشود. وقتی از برای وب سرویس خارجی این کار انجام شود (مثلا سرویس پیامک در سایت) چون اصل عملیات در یک سرور دیگر انجام میشود و بار مربوط به سرور دیگر است این مسئله مشکلی ایجاد نمیکند.