C# 应用 - 多线程 2) Thread 和 ThreadPool
2024-10-19 06:25:12
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 请求时如果对每个请求都创建一个后台线程,会占用大量的内存,而且频繁的创建也会影响速度。而线程池会把创建的线程存起来,形成一个线程池
因此:处理简单的耗时任务时,我们可以使用线程池技术来处理,而不是手动开辟线程来处理耗时任务.
最新文章
- 16个时髦的扁平化设计的 HTML5 &; CSS3 网站模板
- 并行计算之OpenMP入门简介
- JSON-JQuery常用技巧
- 5个缺失的 JavaScript 数字格式化函数
- Codeforces Round #268 (Div. 1) B. Two Sets 暴力
- Python之倒序访问list
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(16)-类库架构扩展以及DLL文件生成修改和用户的简单添加
- Iphone安装铃声
- JGUI源码:组件及函数封装方法(7)
- jmeter的几种参数化方式
- Apache HTTP 服务器 2.4(又名httpd)安装\配置 \启动
- Angular 创建组件
- windows下忘记mysql超级管理员root密码的解决办法(也适用于wamp)
- Android 调用手机上第三方百度地图并传值给地图
- logstash启动脚本
- 浏览器地址栏运行JavaScript代码
- Linux下如何查看tomcat是否启动/系统日志等
- android GridView的setOnItemClickListener事件不执行
- python常用option
- 我的emacs简易配置
热门文章
- Ubuntu——常用命令
- Redis面试常见问题(一)
- codeforces 1036B - Diagonal Walking v.2【思维+构造】
- ROM、SDRAM、RAM、DRAM、SRAM、FLASH的区别
- text to JSON
- scrollTo &; js auto scroll &; scrollX &; scrollY
- flutter 长按图片保存到手机
- 翻译:《实用的Python编程》01_07_Functions
- django学习-6.模板templates
- 09、IO流—File类与IO流