zoukankan      html  css  js  c++  java
  • 线程间数据同步-学习记录

       

       (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)

               

        

  • 相关阅读:
    久未更 ~ 四之 —— Vsftpd出现 Failed to start Vsftpd ftp daemon错误
    久未更 ~ 三之 —— CardView简单记录
    久未更 ~ 二之 —— TextView 文字省略
    久未更 ~ 一之 —— 关于ToolBar
    【UVA1636】决斗Headshot
    【NOIP模拟】花园
    【UVA1262】Password
    【UVA10820】交表
    【UVA1635】哑元
    【UVA12716】GCD和XOR
  • 原文地址:https://www.cnblogs.com/justdoitfei/p/4254997.html
Copyright © 2011-2022 走看看