博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CLR线程池
阅读量:6331 次
发布时间:2019-06-22

本文共 1471 字,大约阅读时间需要 4 分钟。

WaitCallback 表示要在  线程上执行的回调方法。 创建委托,方法是将回调方法传递给 WaitCallback 构造函数。 您的方法必须具有此处所显示的签名。


如果想使用线程池中的工作线程排队执行一个方法,可以使用ThreadPool.QueueUserWorkItem()方法。这个方法被重载的方法可以让你传递一个可选的object类型的自定义状态数据给waitCallBack委托实例

public class Program    {        //出现的问题:dish类与其他两类的对应关系        //多线程针对的是什么,共享那块怎么处理        static void Main(string[] args)        {            Console.WriteLine("-----------------------------");          //  Console.WriteLine(Thread.CurrentThread.ManagedThreadId);            WaitCallback callback = new WaitCallback(new printer().Print);            for (int i = 0; i < 10; i++)            {                ThreadPool.QueueUserWorkItem(callback,i);            }                Console.ReadLine();        }            }    public class printer    {      public  void Print(object obj)        {            lock (this)            {                if (Convert.ToInt32(obj) < 5)                {                    Console.WriteLine(obj.ToString()+" 在等待");                    Monitor.Wait(this);                    Console.WriteLine(obj.ToString());                }                else                {                    Monitor.PulseAll(this);                    Console.WriteLine(obj.ToString());                }            }                        }    }

线程池的好处:

  1. 减少了线程创建、开始和停止的次数,提高了效率。
  2. 能够使我们将注意力放到业务逻辑上而不是多线程架构上。

然而,在某些特殊情况应优先使用手工线程管理。比如:

  1. 如果需要前台线程或设置优先级别,或者线程池中的线程总是后台线程,且它的优先级是默认的
  2. 如果需要有一个带有固定标志的线程便于退出、挂起或通过名字发现它

 

转载于:https://www.cnblogs.com/wangzhenghua/p/4448598.html

你可能感兴趣的文章
我的友情链接
查看>>
IP_VFR-4-FRAG_TABLE_OVERFLOW【cisco设备报错】碎片***
查看>>
Codeforces Round #256 (Div. 2) D. Multiplication Table 【二分】
查看>>
ARM汇编指令格式
查看>>
HDU-2044-一只小蜜蜂
查看>>
HDU-1394-Minimum Inversion Number
查看>>
df -h 卡住
查看>>
第七天1
查看>>
[转] createObjectURL方法 实现本地图片预览
查看>>
Jquery中的Jquery.extend, Jquery.fn.extend,Jquery.prototype
查看>>
JavaScript—DOM编程核心.
查看>>
JavaScript碎片
查看>>
Bootstrap-下拉菜单
查看>>
soapUi 接口测试
查看>>
【c学习-12】
查看>>
工作中MySql的了解到的小技巧
查看>>
loadrunner-2-12日志解析
查看>>
2013年蓝桥杯省赛C/C++A组真题解析
查看>>
C# Memcached缓存
查看>>
iOS开发NSLayoutConstraint代码自动布局
查看>>