Write a standard lock() plus double check to create a
critical section around a variable access?
Answer / 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 |
What is a Metadata?
Diff B/W user control and server control
What is the use of location tag in web.config file
2 Answers Karur Vysya Bank KVB,
What is http request and response?
What is a web api? Which protocol is used in a web api?
What are the Difference between asp.net and asp ?
Why does my asp.net file have multiple tag with runat=server?
What is the main difference between Asp.net and Vb.net?
What is the latest version of asp.net?
what is the difference between assemblyinfo and webconfig files?
In asp.net 3.5 we can go one page to onther page without using statemanagment concept?
How do session tokens work?