⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lockdemo.cs

📁 vc的原码例子12 vc的原码例子12
💻 CS
字号:
using System;
using System.Threading;

public class LockDemo
{
	class buffer
	{
		public static int item = 0;
		public static bool empty = true;
		public static object BufferLock = new Object();
	}

	public static void Producer()
	{
		int value = 0;

		do 
		{
			lock(buffer.BufferLock) 
			{
				if (buffer.empty)
				{
					buffer.empty = false;
					buffer.item = value;
					value = (value == 1) ? 0: 1;
					Console.WriteLine("P: {0}", buffer.item);
				}
		    }
		} while (true);
	}

	public static void Consumer()
	{
		int value;

		do 
		{
			lock (buffer.BufferLock)
			{
				if (! buffer.empty)
				{
					buffer.empty = true;
					Thread.Sleep(500);
					value = buffer.item;
					Console.WriteLine("C: {0}", value);
				}
			}
		} while (true);
	}


	public static void Main()  
	{
		ThreadStart produce = new ThreadStart(Producer);
		ThreadStart consume = new ThreadStart(Consumer);

		Thread ProducerThread = new Thread(produce);
		Thread ConsumerThread = new Thread(consume);

		ProducerThread.Start();
		ConsumerThread.Start();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -