避免线程过多
下面的例子中创建了 201 个线程,用 VS 直接运行了 1 个小时还是只有第一个时间输出到了控制台,只好手动停了。
点击查看代码
cs
using System;
using System.Threading;
namespace TooMuchThread
{
class Program
{
static void Main(string args)
{
Console.WriteLine(DateTime.Now.ToString());
for (int i = 0; i < 200; i++)
{
Thread t = new Thread(() =>
{
int j = 1;
while (true)
{
j++;
}
});
t.IsBackground = true;
t.Start();
}
Thread.Sleep(5000);
Thread t201 = new Thread(() => {
while (true)
{
Console.WriteLine("T201 正在执行");
}
});
t201.Start();
Console.WriteLine(DateTime.Now.ToString());
Console.ReadKey();
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36