class Program
    {
        static object obj = new object();
        static int i = 10000;
        static double start;
        static double end;        static void Main(string[] args)
        {
            Thread th1 = new Thread(new ThreadStart(Count));
            Thread th2 = new Thread(new ThreadStart(Count));
            th1.Name = "线程1";
            th2.Name = "线程2";
            th1.Start();
            th2.Start();
            Console.Read();
        }        private static void Count()
        {
            start = Convert.ToInt32(DateTime.Now.ToString("ms"));
            while (i > 0)
            {
                lock (obj)
                {
                    if (i > 0)
                    {
                        i--;
                        Console.WriteLine(Thread.CurrentThread.Name + "减1等于" + i);
                        Console.WriteLine(end = start - Convert.ToInt32(DateTime.Now.ToString("ms")));
                    }
                }
            }
        }
    }2条线程同步倒数是5-6秒6条线程同步倒数还是5-6秒,,是不是代码哪里写错了?

解决方案 »

  1.   

    多线程不等于就快
    你写的东西首先并没有必要使用多线程,又没有任何等待或空闲的资源可以用多线程去发挥其优势。
    再则你写的东西一个LOCK就没意义了,几个线程抢,最后跑还是一个个的来。你可以换个东西来实现,比如下载一批地址中的数据,这样就明显了
      

  2.   


    嗯,,明白了,我把Lock去掉了
      

  3.   

    不知道你会不会走极端,所以特地来多说几句:不是说不能要lock
    而是lock只用在确实需要的地方