PDA

View Full Version : کاربرد پارامتر lock



neo1989021
دوشنبه 01 خرداد 1391, 11:39 صبح
سلام
یکی از پارامترهای lock رو در محیط console میشه بگید؟

فرید نجفلو
دوشنبه 01 خرداد 1391, 12:28 عصر
سلام
اگه منظورتون Keyword معروف lock باشه این مربوط به کنسول و غیر کنسول نیست
lock برای برنامه های چند نخی (multi threading) استفاده می شه که به شما اجازه می ده یک یلاک از برنامه رو Thread Safe کنید
از دلایل این کار جلو گیری از دسترسی بیش از یک نخ به یک (سری) متغر است تا زمانی که اون نخ (بلاک کد) کارش با اون متغیر تموم بشه و اطمینان می ده که مقادیر توسط سایر کد ها تغییر نمی کنن
اگر بخوایم وارد سطوح پایین تر برشیم این عمل مربوط به تعویض متن در CPU و مبحث چند وظیفه ای (Multi Tasking) میشه

البته توجه داشته باشید استفاده بیش از نیاز و نادرست از lock (و در حالت کلی قفل ها) موجب dead Lock (بن بست) ها میشه که فوق العاده خطر ناک هستن
و به یک جمله هست که می گه این مشکل برطرف نمی شود تاز مانی که حداقل یکی از دو طرف کشته شوند!!!

روش استفاده:

lock (/* a object to Lock*/x)
{//Locing Started
// Critical code section
//Do Here
}//Loching Ended
//Normal code


من به صورت کلیگفتم و کلمات کلیدی رو هم دادم بهتون تا بتونید جستجو کنید
اول جستجو کنید اگه حل نشد بپرسید ما هم تا حد معلومات خودمون توضیح می دیم