Объясните,как работает мьютекс на примере кода: - C#
Формулировка задачи:
Вот код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace Lesson_1
{
class Program
{
static Mutex mutexObj = new Mutex();
static int x = 0;
static void Main(string[] args)
{
for(int i = 0;i<5;i++)
{
Thread myThread = new Thread(Count);
myThread.Name = "Поток: " + i.ToString();
myThread.Start();
Console.WriteLine("{0}:{1}", myThread.Name, myThread.IsBackground);
}
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
public static void Count()
{
mutexObj.WaitOne();
x = 1;
for(int i = 0;i<9;i++)
{
Console.WriteLine("{0}: {1}", Thread.CurrentThread.Name, i);
x++;
Thread.Sleep(100);
}
mutexObj.ReleaseMutex();
}
}
}Решение задачи: «Объясните,как работает мьютекс на примере кода:»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace Lesson_5
{
class Program
{
volatile static int x = 0;
static Mutex mutex = new Mutex();
static void Main(string[] args)
{
Thread thread_f = new Thread(Count);
thread_f.Start();
for(x = 0;x<10;x++)
{
Console.WriteLine(x + ":f");
}
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
static void Count()
{
mutex.WaitOne();
for(x = 0;x<10;x++)
{
Console.WriteLine(x+":d");
}
mutex.ReleaseMutex();
}
}
}