1)线程的死锁问题
2)线程的”死锁与”同步”问题
3)线程”同步”是线程中非常重要的一个概念,所谓同步是指线程之间存在的先后顺序的关联关系。
使用语法
Lock(对象)
{//}
多个线程可能由于争抢一个所谓的公共资源,造成一些异常情况,解决方法可以使用lock关键字,让多个线程顺序访问公共资源,这个技术也叫线程的同步.
源代码:
/***
*
*1演示线程的死锁以及解决方式
* 多个线程可能由于争抢一个所谓的公共资源,造成一些异常情况,解决方法可以使用lock关键字,让多个线程顺序访问公共资源,这个技术也叫线程的同步
*
*
*/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace 线程的死锁与同步
{
class Program
{
public void Test1()
{
TestClass testObj = new TestClass();
Thread t1 = new Thread(testObj.ChangeState);
t1.Start();
Thread t2 = new Thread(testObj.ChangeState);
t2.Start();
}
static void Main(string[] args)
{
Program obj = new Program();
obj.Test1();
}
}
class TestClass
{
private object objLock = new object(); //定义一把锁
private int _GameState = 100; //游戏状态
public void ChangeState()
{
while (true)
{
lock (objLock)
{
ChangeMyState();
}
}
}
public void ChangeMyState()
{
++_GameState;
if (_GameState == 100)
{
Console.WriteLine("GameState = 100, 会输出本语句吗?");
}
_GameState = 100;
}
}
}