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)

               

        

  • 相关阅读:
    hdu 刷题记录
    HDU step by step
    Codeforces Round #260 (Div. 2) B. Fedya and Maths
    Codeforces Round #260 (Div. 2) A. Laptops
    UVALive 6662 TheLastAnt
    UVALive 6661 Equal Sum Sets
    Codeforces Round #253 (Div. 2) A. Anton and Letters
    wikioi 3130 CYD刷题(背包)
    wikioi 1014 装箱问题(背包)
    [转]很特别的一个动态规划入门教程
  • 原文地址:https://www.cnblogs.com/justdoitfei/p/4254997.html
Copyright © 2011-2022 走看看