首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么防止多线程间的数据冲突

2013-09-11 
如何防止多线程间的数据冲突public static Liststring numbers public void A(){while(true){Thread t

如何防止多线程间的数据冲突
public static List<string> numbers ;
public void A()
{
  while(true)
  {
    Thread t=new System.Threading.Thread (new ThreadStart(B);
    t.start();
    Thread.sleep(100);
  }
}

public void B()
{
       Console.WriteLine(numbers [0]);
       numbers.RemoveAt(0);


(上面是我随便写的一段假设代码)
问题:怎样才能确保线程间不会出现同时调用方法B的Console.WriteLine输出同样的string值(按道理是应该不可能出现2个同样的值输出)
[解决办法]
object lockobj = new lockobj();
lock (lockobj) {
       Console.WriteLine(numbers [0]);
        numbers.RemoveAt(0);
}
[解决办法]
加lock关键字,更多线程同步内容可以参考MSDN线程同步专题或这个博文系列:
http://www.cnblogs.com/zhili/category/398603.html

热点排行