IEnumerable<int> intList = Enumerable.Range(1, 15);

foreach (int i in intList)
{
ThreadPool.QueueUserWorkItem(w =>
{
Console.WriteLine("ThreadPool:" + Thread.CurrentThread.ManagedThreadId.ToString());
});
} foreach ( int i in intList)
{
new Thread(new ThreadStart(() =>
{
Console.WriteLine("Thread:" + Thread.CurrentThread.ManagedThreadId.ToString());
})).Start();
}

结果:

Thread:16
Thread:10
ThreadPool:4
ThreadPool:9
ThreadPool:9
ThreadPool:9
ThreadPool:9
ThreadPool:9
ThreadPool:9
ThreadPool:9
ThreadPool:9
ThreadPool:9
Thread:17
Thread:18
Thread:19
Thread:20
Thread:21
Thread:22
Thread:23
Thread:24
ThreadPool:4
ThreadPool:6
ThreadPool:5
ThreadPool:7
ThreadPool:8
Thread:12
Thread:13
Thread:14
Thread:15

如果有大量的任务需要处理,例如处理 http 请求时如果对每个请求都创建一个后台线程,会占用大量的内存,而且频繁的创建也会影响速度。而线程池会把创建的线程存起来,形成一个线程池

因此:处理简单的耗时任务时,我们可以使用线程池技术来处理,而不是手动开辟线程来处理耗时任务.

最新文章

  1. 16个时髦的扁平化设计的 HTML5 &amp; CSS3 网站模板
  2. 并行计算之OpenMP入门简介
  3. JSON-JQuery常用技巧
  4. 5个缺失的 JavaScript 数字格式化函数
  5. Codeforces Round #268 (Div. 1) B. Two Sets 暴力
  6. Python之倒序访问list
  7. ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加
  8. Iphone安装铃声
  9. JGUI源码:组件及函数封装方法(7)
  10. jmeter的几种参数化方式
  11. Apache HTTP 服务器 2.4(又名httpd)安装\配置 \启动
  12. Angular 创建组件
  13. windows下忘记mysql超级管理员root密码的解决办法(也适用于wamp)
  14. Android 调用手机上第三方百度地图并传值给地图
  15. logstash启动脚本
  16. 浏览器地址栏运行JavaScript代码
  17. Linux下如何查看tomcat是否启动/系统日志等
  18. android GridView的setOnItemClickListener事件不执行
  19. python常用option
  20. 我的emacs简易配置

热门文章

  1. Ubuntu——常用命令
  2. Redis面试常见问题(一)
  3. codeforces 1036B - Diagonal Walking v.2【思维+构造】
  4. ROM、SDRAM、RAM、DRAM、SRAM、FLASH的区别
  5. text to JSON
  6. scrollTo &amp; js auto scroll &amp; scrollX &amp; scrollY
  7. flutter 长按图片保存到手机
  8. 翻译:《实用的Python编程》01_07_Functions
  9. django学习-6.模板templates
  10. 09、IO流—File类与IO流