博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Lock锁的问题
阅读量:4302 次
发布时间:2019-05-27

本文共 525 字,大约阅读时间需要 1 分钟。

多个线程共用一个锁时,同一时间只有一个可获得锁执行,其他线程会阻塞进入队列,按理解事件如果是多线程的,那么每次事件触发的含lock的函数都会将进入队列等待,越排越多。需待实验证明。

 public class Test

    {

       public void Fun1()
       {
           Task.Factory.StartNew(() => { 
           
           while(true)
           {
               Excute("线程1:");

           }

           
           
           });

       }

       public void Fun2()
       {
           Task.Factory.StartNew(() =>
           {

               while(true)

               {
                   Excute("线程2:");

               }

           });

       }

       public void Fun3()

       {
           Task.Factory.StartNew(() =>
           {

               while (true)

               {
                   Excute("线程3:");

               }

           });

       }

       object ob = new object();
       int A = 0;
       public void Excute(string id)
       {
           lock(ob)
           {
               Console.WriteLine(id+A.ToString());
               Thread.Sleep(2000);
               A++;
           }
          

       }

    }

转载地址:http://jrows.baihongyu.com/

你可能感兴趣的文章
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Mysql出现Table 'performance_schema.session_status' doesn't exist
查看>>
MySQL innert join、left join、right join等理解
查看>>
vivado模块封装ip/edf
查看>>
sdc时序约束
查看>>
Xilinx Jtag Access/svf文件/BSCANE2
查看>>
NoC片上网络
查看>>