zoukankan      html  css  js  c++  java
  • 一个会引起死锁的C#程序

    写了个会引起死锁的C#程序,帮助理解死锁的含义:
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Threading;

    namespace @lock
    {
        
    class Program
        {
            
    public static object lock_A = new object();
            
    public static object lock_B = new object();
            
    public void DoSomething()
            {
               
                
    lock (lock_A)
                {
                    Thread.Sleep(
    500);
                    Console.WriteLine(
    "我是lock_A,我想要lock_B");
                    
    lock (lock_B)
                    {
                        Console.WriteLine(
    "没出现这句话表示死锁了");
                    }
                }
            }

            
    static void Main()
            {
                Program a 
    = new Program();
                Thread th 
    = new Thread(new ThreadStart(a.DoSomething));
                th.Start();

                
    lock (lock_B) 
                {

                    Console.WriteLine(
    "我是lock_B,我想要lock_A");
                    
    lock (lock_A)
                    {
                        Console.WriteLine(
    "没出现这句话表示死锁了");
                    }
                }

                Console.WriteLine(
    "没出现这句话表示死锁了");
            } 

        }
    }
  • 相关阅读:
    正则表达式
    跨域请求/SpringMVC拦截器
    批量导出
    什么是2MSL以及TIME_WAIT的作用
    使用jstack精确找到异常代码的
    nettry 入站事件如何传递到下一个handler
    netty 引用计数器 ,垃圾回收
    elasticsearch 查询优化
    Spark性能优化指南-高级篇(spark shuffle)
    Broadcast与map进行join,避免shuffle,从而优化spark
  • 原文地址:https://www.cnblogs.com/OpenCoder/p/1581889.html
Copyright © 2011-2022 走看看