C#基础学习16(线程池、死锁)

一、线程池

ThreadPool.SetMaxThreads(5,5);//设置线程池大小:最多线程个数(这里是5个)

ThreadPool.QueueUserWorkItem(new WaitCallback ( 方法名 ) ); //将方法排入队列以便执行

ThreadPool.QueueUserWorkItem(new WaitCallback ( 方法名 ) ,参数);//带参数的方法

创建线程方法

1.Thread t = new Thread ( delegate () {  });//匿名委托方式创建线程

2.Thread t = new Thread ( () => {  } );//拉姆达方式创建线程

   t.IsBackground = true;//开启后台运行

   t.Start();//启用线程

二、锁

语法:lock("名字") { 会并发的代码 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中的线程池是一种用于管理和分配线程的机制,可以有效地减少线程的创建和销毁,提高程序的性能和可伸缩性。 在C#中使用线程池,可以通过以下步骤实现: 1. 创建一个WaitCallback委托,用于指定要在线程池中执行的方法。 2. 调用ThreadPool.QueueUserWorkItem方法,将WaitCallback委托和要传递给该方法的数据(如果有)作为参数传递。 3. 等待线程池中的线程完成任务。 下面是一个简单的示例,演示如何使用线程池执行任务: ``` using System; using System.Threading; class Program { static void Main(string[] args) { // 创建一个WaitCallback委托,指定要在线程池中执行的方法 WaitCallback callback = new WaitCallback(DoWork); // 将WaitCallback委托和要传递给该方法的数据作为参数传递给ThreadPool.QueueUserWorkItem方法 ThreadPool.QueueUserWorkItem(callback, "hello"); // 等待线程池中的线程完成任务 Console.ReadLine(); } static void DoWork(object data) { // 执行任务 Console.WriteLine("Task executed with data: {0}", data); } } ``` 在上面的示例中,我们首先创建了一个WaitCallback委托,指定要在线程池中执行的方法。然后,我们调用ThreadPool.QueueUserWorkItem方法,将WaitCallback委托和要传递给该方法的数据作为参数传递。最后,我们等待线程池中的线程完成任务。 注意,在使用线程池时,需要注意线程安全问题,并避免出现死锁等异常情况。同时,也需要根据具体的业务需求调整线程池的配置参数,以充分利用系统资源,提高程序性能和可伸缩性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值