WEB开发网
开发学院软件开发C语言 C#多线程编程(2):线程的同步 阅读

C#多线程编程(2):线程的同步

 2010-09-30 21:09:36 来源:WEB开发网   
核心提示: 经过这样处理之后系统的运行结果就会正常,效果如下:总的来说,C#多线程编程(2):线程的同步(4),lock语句是一种有效的、不跨越多个方法的小代码块同步的做法,也就是使用lock语句只能在某个方法的部分代码之间,不能跨越方法,Monitor类针对上面的代码

经过这样处理之后系统的运行结果就会正常。效果如下:

C#多线程编程(2):线程的同步

总的来说,lock语句是一种有效的、不跨越多个方法的小代码块同步的做法,也就是使用lock语句只能在某个方法的部分代码之间,不能跨越方法。

Monitor类

针对上面的代码,如果使用Monitor类来同步的话,代码则是如下效果:

private void Run()
{
        while (ticketList.Count > 0)//①
                {
                        Monitor.Enter(objLock);
                                if (ticketList.Count > 0)
                                {
                                        string ticketNo = ticketList[0];//②
                                        Console.WriteLine("{0}:售出一张票,票号:{1}", Thread.CurrentThread.Name, ticketNo);
                                        ticketList.RemoveAt(0);//③
                                        Thread.Sleep(1);
                                }
                                Monitor.Exit(objLock);
        }
}

上一页  1 2 3 4 5 6 7 8  下一页

Tags:线程 编程 线程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接