Write a standard lock() plus double check to create a
critical section around a variable access?
Answer Posted / debmalya kundu
using System;
using System.Text;
using System.Threading;
namespace thread01
{
public class Counter
{
private int _count=0;
private int _even=0;
public int Count { get { return _count; } }
public int EvenCount { get { return _even; } }
private Object theLock = new Object();
public void UpdateCount()
{
lock (theLock)
{
_count = _count + 1;
if (Count % 2 == 0) // An even number
{
_even += 1;
}
}
}
}
class Program
{
static void Main(string[] args)
{
Counter count = new Counter();
ParameterizedThreadStart starter = new
ParameterizedThreadStart(Program.UpdateCount);
Thread[] threads = new Thread[10];
for (int x = 0; x < 10; ++x)
{
threads[x] = new Thread(starter);
threads[x].Start(count);
}
for (int y = 0; y < 10; ++y)
{
threads[y].Join();
}
Console.WriteLine("Total: {0} - Even: {1}",
count.Count,count.EvenCount);
Console.ReadKey();
Console.ReadKey();
}
static void UpdateCount(object param)
{
Counter count = (Counter)param;
for (int z = 1; z <= 100000; ++z)
{
count.UpdateCount();
}
}
}
}
Is This Answer Correct ? | 3 Yes | 0 No |
Post New Answer View All Answers
What is csrf attack in asp.net?
Define static constructor?
If you want to write your own dot net language, what steps you will you take care?
Explain the difference between singleton and single call?
What is the file through which you can customize your asp.net application?
What are the different types of cookies in asp.net?
Explain how can we inherit a static variable?
What are sql joins?
Explain about ASP.NET?
Describe the .net base class library.
What is http protocol and how it works?
14. What are your Future Plans for Swatz Oils GROUP U.K?
What is base class of .net?
What is a user session?
Define dll hell?