2012飞

just do it,believe yourself. 努力和汗水成就梦想
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

线程间数据同步-学习记录

Posted on 2015-01-28 09:43  2012飞  阅读(150)  评论(0编辑  收藏  举报

   

   (1) 线程间数据共享,需要把共享的数据设置为静态类型,可以使用关键字static。

   (2) lock数据同步数据访问,lock关键字将语句表为临界区,如果没有lock,线程对共享变量的操作将变得不可控制

   (3)Monitor类同步数据访问数   用于锁定对象,一个线程只有得到这把锁才能对该对象进行操作。一个时刻只有一个线程可以访问对象。

           监视器   必须和一个具体的对象相关联。它是静态类,所以不能用它来定义对象,且它所有的方法都是静态的,不能使用对象引用。

           

MethodSUBA()        
{
do{
lock(lockExample) { 在线程A中操作共享变量i }
}whille(1==1); } MethodSUBA() {
do{
lock(lockExample) { 在线程B中操作共享变量i }
}whille(1==1); }

//声明创建加锁对象 public static object lockExample=new object(); //声明共享变量 static int i=0;
Main()
{ Thread ThreadSubA
=new Thread(new ThreadStart(MethodSubA));
Thread ThreadSubB =new Thread(new ThreadStart(MethodSubA)); ThreadSubA .Start(); ThreadSubB .Start();
do

{
if(console.Read()==‘e’)
}
ThreadSubA .Abort();
ThreadSubB .Abort();
break;
}while(1==1)