码迷,mamicode.com
首页 > 编程语言 > 详细

C#lock 及线程传参

时间:2020-06-08 00:56:43      阅读:91      评论:0      收藏:0      [点我收藏+]

标签:传参   使用   语句   size   线程同步   运行   设置   public   ogr   

实现线程同步的第一种方式是我们经常使用的lock关键字,它将包围的语句块标记为临界区,这样一次只有一个线程进入临界区并执行代码。

lock(locker)其中locker应该为引用类型,且不为字符串

创建线程传递参数,将参数设置为object类型,在方法中再进行转换。

 class Program
    {
        static object locker = new object();
        static void Main(string[] args)
        {
            Thread th1 = new Thread(locer_test);
            Thread th2 = new Thread(locer_test);
            th1.Start("1");
            th2.Start("2");
        }

        public static void locer_test(object o)
        {
            string str = (string)o;
            while (true)
            {
                lock(locker)
                {
                    Console.WriteLine("正在调用的是" + str);
                    Thread.Sleep(3000);
                    Console.WriteLine("延时结束");
                }
            }
        }
    }

运行结果:

正在调用的是1
延时结束
正在调用的是2
延时结束
正在调用的是1
延时结束
正在调用的是2
延时结束
正在调用的是1
延时结束
正在调用的是2
延时结束

C#lock 及线程传参

标签:传参   使用   语句   size   线程同步   运行   设置   public   ogr   

原文地址:https://www.cnblogs.com/xzheng/p/13062998.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!