C# 并行编程 之 ThreadPool的基本使用
来源:互联网 发布:知乎沙发挑选 编辑:程序博客网 时间:2024/06/03 17:15
概要
一个托管线程的创建需要数千个CPU周期,并且当发生线程切换时也会带来明显的开销。考虑线程的重用,避免不断重复创建新的线程是提高系统效率的一种方式。
线程池是一种提供效率的方式,它创建好一些线程由线程池引擎管理,开发者将需要处理的业务或操作封装成为【工作项】工作项被传递给线程池队列,由线程池中的不同的工作线程挑选并执行。当执行完毕后,线程并不被销毁,而是继续选择其他的工作项。
代码示例
using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace Sample8_1_threadpool_basic{ class Program { public static void Work1() { System.Console.WriteLine("ThreadWork1 run { "); for (int i = 0; i < 20; i++) { System.Console.WriteLine("ThreadWork1 *****: " + i); } System.Console.WriteLine("ThreadWork1 run } "); } public static void Work2() { System.Console.WriteLine("ThreadWork2 run { "); for (int i = 0; i < 20; i++) { System.Console.WriteLine("ThreadWork2 =====: " + i); } System.Console.WriteLine("ThreadWork2 run } "); } static void Main(string[] args) { ThreadPool.QueueUserWorkItem((stat) => { Work1(); }); ThreadPool.QueueUserWorkItem((stat) => { Work2(); }); Console.ReadLine(); } }}
ThreadPool的接口
详见: https://msdn.microsoft.com/zh-cn/library/system.threading.threadpool_methods(v=vs.80).aspx
0 0
- C# 并行编程 之 ThreadPool的基本使用
- C# 并行编程 之 PLINQ 基本使用
- C# 多线程编程之线程池的使用 (ThreadPool)
- C#多线程编程之线程池的使用 (ThreadPool)
- C# 并行编程 之 互斥锁的使用
- C# 并行编程 之 Barrier的使用
- C# 并行编程 之 自旋锁的使用
- C# 并行编程 之 轻量级手动重置事件的使用
- c#的ThreadPool使用笔记
- C# 并行编程 之 PLINQ并行度的指定 和 ForAll的使用
- c# ThreadPool 线程池的使用
- c#的ThreadPool使用笔记(一)
- C# 并行编程 之 Barrier的使用 - 通过屏障同步并发任务
- C# 并行编程 之 限制资源的并发访问 使用SemaphoreSlim
- C# 并行编程 之 Barrier的使用 - 通过屏障同步并发任务
- C#多线程编程介绍——使用thread、threadpool、timer
- C#多线程编程介绍——使用thread、threadpool、timer
- C# 并行编程 之 异步编程模型
- SQLServer游标(Cursor)简介和使用说明
- [Leetcode 207, Easy] Rectangle Area
- Hadoop编程实例--数据去重
- chrome模拟手机和web的切换方式
- C++中的(:)与(::)的区别
- C# 并行编程 之 ThreadPool的基本使用
- ocx 中处理回车相应的问题
- NoSQL数据库-MongoDB和Redis
- 一个有关程序运行时间的小测试
- 同步数据
- 安卓AsyncHttpClient网络开源框架
- SSH级联操作报错:org.hibernate.exception.ConstraintViolationException: Could not execute
- SwipeRefreshLayout完美添加及完善上拉加载功能
- spring aop 基于注解