美文网首页
线程池的简单例子

线程池的简单例子

作者: 价值投机168 | 来源:发表于2019-12-06 10:55 被阅读0次
class Program
{
    static readonly ReaderWriterLockSlim locker = new ReaderWriterLockSlim();
    const int cycleNum = 10;
    static int cnt = 10;
    static AutoResetEvent myEvent = new AutoResetEvent(false);
    static void Main(string[] args)
    {
        ThreadPool.SetMinThreads(1, 1);
        ThreadPool.SetMaxThreads(5, 5);
        for (int i = 1; i <= cycleNum; i++)
        {
            ThreadPool.QueueUserWorkItem(new WaitCallback(testFun), i.ToString());
        }
        Console.WriteLine("主线程执行!");
        Console.WriteLine("主线程结束!");
        myEvent.WaitOne();
        Console.WriteLine("线程池终止!");
        Console.ReadKey();
    }
    public static void testFun(object obj)
    {
        Console.WriteLine(string.Format("{0}:第{1}个线程,cnt={2}", DateTime.Now.ToString(), obj.ToString(), cnt));

        locker.EnterWriteLock();
        cnt -= 1;
        locker.ExitWriteLock();

        Thread.Sleep(100);

        locker.EnterReadLock();
        if (cnt == 0)
        {
            myEvent.Set();
        }
        locker.ExitReadLock();
    }
}

相关文章

  • 线程池的简单例子

  • Java多线程ThreadPoolExecutor

    作用 一、使用简单二、方便管理多线程三、可重复利用线程 一个例子 通过下面这个例子,可以看出线程池使用起来非常简单...

  • Java线程池快速理解

    Java线程池 [toc] 什么是线程池 线程池就是有N个子线程共同在运行的线程组合。 举个容易理解的例子:有个线...

  • go http服务器/客户端

    服务器端简单例子: 客户端简单例子 贴吧单线程爬取例子 贴吧多线程爬虫简单例子 多线程爬取多个页面例子

  • java高级应用:线程池全面解析

    什么是线程池? 很简单,简单看名字就知道是装有线程的池子,我们可以把要执行的多线程交给线程池来处理,和连接池的概念...

  • 最全面Java线程池解析

    什么是线程池? 很简单,简单看名字就知道是装有线程的池子,我们可以把要执行的多线程交给线程池来处理,和连接池的概念...

  • Java中的ThreadPoolExecutor线程池

    今天简单来和大家一起学习一下,java中的ThreadPoolExecutor线程池。 线程池简介 背书中,线程池...

  • java线程池

    线程池的概念 简单来说线程池就是一个管理线程的池子,当我们有任务需要执行无需创建线程,只需要将任务提交到线程池即可...

  • Java - 线程池总体预览

    Executors提供多种线程池的实现,下面对每种线程池进行简单介绍。 1. newCachedThreadPoo...

  • 线程池简易实现和线程池源码

    线程池简单实现 源码 ThreadPoolExecutor 使用 int 的高 3 位来表示线程池状态,低 29 ...

网友评论

      本文标题:线程池的简单例子

      本文链接:https://www.haomeiwen.com/subject/uvisgctx.html