多线程面试题(二)

来源:互联网 发布:淘宝代练跑商可靠吗 编辑:程序博客网 时间:2024/03/29 16:07

 面试题意思:启动三个线程,第一个线程生成随机数,生成的偶数传给B线程开平方,生成的奇数传给C开平方。

                         代码如下:

                          由于在线程方面的知识尚浅,不知有没有疏忽的地方,还请大牛指教。

        static ArrayList arrayB = new ArrayList();        static ArrayList arrayC = new ArrayList();        static void Main(string[] args)        {            Thread threadA = new Thread(MethodA);            threadA.Start();            threadA.Priority = ThreadPriority.AboveNormal;//设置线程优先级            Thread threadB = new Thread(MethodB);            threadB.Start();            Thread threadC = new Thread(MethodC);            threadC.Start();            Console.ReadLine();        }        private static void MethodA()        {            Random rand=new Random();            for (int i = 0; i < 20; i++)            {                int num = rand.Next(0, 100);                if (num % 2 == 0)                {                    arrayB.Add(num);                }                else                {                    arrayC.Add(num);                }            }        }        private static void MethodB()        {            for (int i = 0; i < arrayB.Count; i++)            {                Console.WriteLine("线程B得到的偶数:{0},开平方之后:{1}", arrayB[i], Math.Sqrt(Convert.ToDouble(arrayB[i])));            }        }        private static void MethodC()        {            for (int i = 0; i < arrayC.Count; i++)            {                Console.WriteLine("线程C得到的奇数:{0},开平方之后:{1}", arrayC[i], Math.Sqrt(Convert.ToDouble(arrayC[i])));            }        }


 

原创粉丝点击