PDA

View Full Version : حرفه ای: lock در سی شارپ چه معنی داره؟؟؟؟



haniyehghassami
دوشنبه 28 آذر 1390, 09:55 صبح
سلام
من به یه مشکل برخورد کردم. اینجا یه کلمه هست به اسم lock که تو سایت های مختلف خوندم که در زمان مولتی تردینگ مورد استفاده قرار می گیره واسه اینکه برای یک ترد خاص بخوای تنها این کد درون lock را اجرا کنی

اما متلا من از نومنه ی زیر اصلا سر در نمیارم

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace lock_sample
{
class Program
{
static readonly object _object = new object();

static void A()
{
// Lock on the readonly object.
// ... Inside the lock, sleep for 100 milliseconds.
// ... This is thread serialization.
lock (_object)
{
Thread.Sleep(100);
Console.WriteLine(Environment.TickCount);
}
}

static void Main(string[] args)
{
// Create ten new threads.
for (int i = 0; i < 10; i++)
{
ThreadStart start = new ThreadStart(A);
new Thread(start).Start();
}
Console.ReadLine();
}

}
}



مثلا این یعنی چی ؟خروجیش چیه؟


Console.WriteLine(Environment.TickCount);

عددهایی که تو خروجی میاین چه مفهومی دارن؟:متفکر::متفکر::متفکر::م فکر::متفکر::متفکر::متفکر::مت کر::متفکر::متفکر::متفکر:
میشه یکی کمکم کنه تا من این و بفهمم؟:چشمک::خجالت::خجالت::خ الت::گریه::گریه::گریه::گریه:: ریه::گریه::گریه::گریه::گریه:

linux
دوشنبه 28 آذر 1390, 10:03 صبح
وقتی بحث مولتی تریدینگ پیش می آید امکان دارد که دو ترد هم زمان به خواهند مقدار یک شی را دستکار کنند برای جلوگیری از این حالت استفاده می شود

haniyehghassami
دوشنبه 28 آذر 1390, 10:14 صبح
ممنونم
اما معنی این خط چیه؟
Console.WriteLine(Environment.TickCount);

linux
دوشنبه 28 آذر 1390, 10:23 صبح
ممنونم
اما معنی این خط چیه؟
Console.WriteLine(Environment.TickCount);
دوست عزیز msdn برای همین چیرها هست، به هر حال این یک عدد بر می گرداند که میلی ثانیه های گذشته از زمان روشن شدن کامپیوتر را نمایش می دهد.
برای کامپیوتر من در همین لحظه 746262229 هست یعنی کامپیوتر من در حدود 20 ساعت و 45 دقیقه هست که روشن هست

mmd2009
دوشنبه 28 آذر 1390, 19:42 عصر
با سلام

همونطور که دوستمون گفتم در برنامه نویسی چند نخی از lock استفاده میشه و همینطور بد نیست بدونید که در برنامه نویسی موازی ( parallel ) باز هم از lock استفاده میشه

موفق باشید

system32
دوشنبه 28 آذر 1390, 21:02 عصر
قفل باعث می شود تا بخشی از کدها توسط دخالت بی مورد کدهای دیگر محافظت گردد این محافظت تا زمانی که قفل پای برجاست انجام می گیرد ولی با برداشتن قفل از آن ناحیه کدهای دیگر ناحیه ها می توانند به بخش قفل شده دسترسی داشته باشند