/// <summary> /// 两个线程交替打印0~100的奇偶数 /// </summary> public static void PrintOddEvenNumber() { var work = new TheadWorkTest(); var thread1 = new Thread(work.PrintOddNumer) { Name = "奇数线程" }; var thread2 = new Thread(work.PrintEvenNumber) { Name = "偶数线程" }; thread1.Start(); thread2.Start(); }
/// <summary> /// N个线程顺序循环打印从0至100 /// </summary> /// <param name="n"></param> public static void PrintNumber(int n = 3) { var work = new TheadWorkTest { Semaphores = new Semaphore[n] }; for (var i = 0; i < n; i++) { work.Semaphores[i] = new Semaphore(1, 1); if (i != n - 1) { work.Semaphores[i].WaitOne(); } } for (var i = 0; i < n; i++) { new Thread(work.PrintNumber) { Name = "线程" + i }.Start(i); } }