110,534
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace ProductAndConsume
{
class Program
{
static void Main(string[] args)
{
Thread t = new Thread(new ThreadStart(thredm));
t.Start();
Thread t1 = new Thread(new ThreadStart(thredm1));
t1.Start();
Thread t3 = new Thread(new ThreadStart(thredm));
t3.Start();
}
static object obj = new object();
static void thredm()
{
while (true)
{
lock(obj)
{
Console.WriteLine("t1 lock");
Console.ReadLine();
}
Console.WriteLine("open lock");
Console.ReadLine();
}
}
static void thredm1()
{
while (true)
{
obj = new object();
Thread.Sleep(100);
Console.WriteLine("modify object");
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
namespace ProductAndConsume
{
class Program
{
static int item=10;
static void Main(string[] args)
{
Thread t = new Thread(new ThreadStart(Pro));
t.Start();
Thread t1 = new Thread(new ThreadStart(Modify));
t1.Start();
Thread t3 = new Thread(new ThreadStart(Con));
t3.Start();
}
static Object obj =new Object();
static void Pro()
{
while (true)
{
lock (obj)
{
if (item<10)
{
item++;
Console.WriteLine("Pro one item,cur item count:" + item.ToString() + " lock is :" + obj.GetHashCode().ToString());
Thread.Sleep(1000);
}
}
Thread.Sleep(100);
}
}
static void Con()
{
while (true)
{
lock (obj)
{
if (item >0)
{
item--;
Console.WriteLine("Con one item,cur item count:" + item.ToString()+" lock is :"+obj.GetHashCode().ToString());
}
}
Thread.Sleep(100);
}
}
static void Modify()
{
while (true)
{
obj = new Object();
Console.WriteLine("obj Modifyed to:" + obj.GetHashCode().ToString());
Thread.Sleep(1000);
}
}
}
}
static void thredm1()
{
Thread.Sleep(100);
while (true)
{
obj = new object();
Thread.Sleep(100);
Console.WriteLine("modify object");
}
}