C# ThreadPool理解
来源:互联网 发布:最近淘宝网页打不开 编辑:程序博客网 时间:2024/06/14 05:37
在程序中,我们经常会遇到需要多线程处理的情况,此时我们需要开辟线程,但是开辟线程的过程代价比较高。通常我们可以通过开辟线程池(ThreadPool)来实现线程,当我们需要使用线程时,我们可以根据需求来从ThreadPool中取出线程对象;当我们使用完线程时,我们可以将相应的线程对象归还给ThreadPool。线程池可以想尽办法来复用线程,因为线程的开辟代价太大,这样可以提高程序的效率。
对于线程池,我们只需要把工作函数丢给线程池我们就可以完成相应任务,对于如何完成任务完全有系统进行控制,因此我们无法左右。我们无法设计整个线程的优先级,执行顺序等等,因此以下情况不适合用ThreadPool:
(1)线程执行时间比较长
(2)线程需要指定优先级
(3)在执行过程中需要对线程进行操作,例如sleep,挂起等等。
对于线程池ThreadPool,比较常见的方法有:
public static Boolean QueueUserWorkItem(WaitCallback wc, Object state);// State: 这个参数也是非常重要的,当执行带有参数的回调函数时,该参数会将引用传入,回调方法中,供其使用public static bool SetMaxThreads(int workerThreads,int completionPortThreads);public static bool SetMinThreads(int workerThreads,int completionPortThreads);
class Program { static void WaitCallBackMethod(object _object) { for (int i = 0; i < 5; i++) { Console.WriteLine("这是第{0}个线程", _object); Thread.Sleep(1000); } } static void Main(string[] args) { for (int i = 0; i <= 3; ++i) { ThreadPool.QueueUserWorkItem(WaitCallBackMethod, i); } Console.ReadKey(); } }
0 0
- C# ThreadPool理解
- C# ThreadPool
- C# ThreadPool
- 对 ThreadPool 的理解
- 对 ThreadPool 的理解
- C# 中的 ThreadPool
- C# ThreadPool类简介
- C# ThreadPool学习笔记
- C# ThreadPool 的改进
- c# ThreadPool 应用实例
- C#线程池ThreadPool
- C# ThreadPool 线程同步
- NETFramework 4.0 ThreadPool的理解
- C# Tutorial - Using The ThreadPool
- C# ThreadPool and WaitHandle Sample
- c#的ThreadPool使用笔记
- C# ThreadPool的简单用法
- C# 浅谈ThreadPool -- 上篇(Enqueue)
- 常用指令总结
- 打造安全的App!iOS安全系列之 HTTPS
- 常用socket函数详解
- 绝对路径和相对路径
- 在eclipse中创建android项目Tetris
- C# ThreadPool理解
- 【流媒体开发实战进阶---rtsp视频播放器】视频课程发布完成
- react 学习
- 判断是否是二叉搜索树的后序遍历
- 判断坐标是否在矩阵内
- log4j2.xml实用例子
- 总结几种log打印printf函数的宏定义
- jbpm
- RMQ-ST算法