C# 多线程协同完成一个任务

C# 多线程协同完成一个任务

01 using System;
02 using System.Collections.Generic;
03 using System.Linq;
04 using System.Text;
05 using System.Threading;
06  
07 namespace ConsoleApplication3
08 {
09     class Program
10     {
11         static long Sum=0;
12         static object mylock;
13         static void Main(string[] args)
14         {
15             long n = 0;
16             long s1 = DateTime.Now.Ticks;
17             for (int i = 0; i <= 100; i++)
18             {
19                 n += i;
20                 Thread.Sleep(10);
21             }
22             long s2 = DateTime.Now.Ticks;
23             Console.Write("----------------单线程运行-------------------\nsum:" + n + "\n\r所花时间(纳秒):" + (s2 - s1)+"\n");
24             Console.Write("----------------双线程运行-------------------\n");
25             Thread t1 = new Thread(add1);
26             Thread t2 = new Thread(add2);
27             mylock = new object();
28             s1 = DateTime.Now.Ticks;
29             t1.Start();
30             t2.Start();
31             t1.Join();
32             t2.Join();
33             s2 = DateTime.Now.Ticks;
34             Console.Write("sum:" + n + "\n\r所花时间(纳秒):" + (s2 - s1));
35             Console.ReadKey();
36         }
37         static void add1()
38         {
39             long n = 0;
40             for (int i = 0; i <= 50; i++)
41             {
42                 n += i;
43                 Thread.Sleep(10);
44             }
45             Monitor.Enter(mylock);
46             Sum += n;
47             Console.Write("线程一运行完毕,Sum:" + Sum+"\n");
48             Monitor.Exit(mylock);
49             
50              
51         }
52         static void add2()
53         {
54             long n = 0;
55             for (int i = 51; i <= 100; i++)
56             {
57                 n += i;
58                 Thread.Sleep(10);
59             }
60             Monitor.Enter(mylock);
61             Sum += n;
62             Console.Write("线程二运行完毕,Sum:" + Sum + "\n");
63             Monitor.Exit(mylock);
64             
65         }
66     }
67 }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值