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


       

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

               

        

  • 相关阅读:
    kafka学习
    centos/Fedora/RHEL 安全设置
    cordon、drain、delete node区别
    HARBOR 仓库 API功能接口
    gcr 镜像无法下载问题
    linux系统 重启盘符错乱问题
    Kafka史上最详细原理总结
    redis 部署
    mongodb4.0 安装
    gitstats 统计gitlab仓库中的代码
  • 原文地址:https://www.cnblogs.com/justdoitfei/p/4254997.html
Copyright © 2020-2023  润新知