C# 多线程 lock 的使用

    class Program
    {

        private static int count = 0;
        private static object obj = new object();
        static void Main(string[] args)
        {
            Thread t1 = new Thread(() =>
            {
                for (int i = 0; i < 1000; i++)
                {
                    lock (obj)
                    {
                        count++;
                    }
                    Thread.Sleep(1);
                }
            });
            t1.Start();

            Thread t2 = new Thread(() =>
            {
                for (int i = 0; i < 1000; i++)
                {
                    lock (obj)
                    {
                        count++;
                    }
                    Thread.Sleep(1);
                }
            });
            t2.Start();

            while (t1.IsAlive) { }
            while (t2.IsAlive) { }
            Console.WriteLine($"count:{count}");
            Console.ReadKey();
        }
    }
发布了43 篇原创文章 · 获赞 2 · 访问量 2589
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览