首页 > 其他分享 >线程池

线程池

时间:2024-09-25 11:35:44浏览次数:1  
标签:task ins 任务 static 单例 线程

1)线程池 PoolThread
线程池可以避免在处理短时间任务时创建与销毁线程的代价,它维护着多个线程,等待着监督管理者分配可并发执行的任务,从而提高了整体性能

2)单例类

static ThreadPool& instance() {
  //局部静态变量,单例类只构造一次
        static ThreadPool ins;
        return ins;
    }

3)线程池逻辑

构造单例,start函数启动线程池
初始化n个线程,每个线程中等待队列产生任务(条件变量)
任务到来,线程被唤醒,移动任务对象(std::package_task)到线程中;
线程总数-1
执行task

commit:提交任务到线程池
绑定任务到task,使用task.getfuture()获取返回值
将task加入队列
唤醒某个线程

标签:task,ins,任务,static,单例,线程
From: https://www.cnblogs.com/light-LifeClub/p/18429055

相关文章

  • Android线程使用总结
    Android线程使用总结1.ThreadingPerformance在程序开发的实践当中,为了让程序表现得更加流畅,我们肯定会需要使用到多线程来提升程序的并发执行性能。但是编写多线程并发的代码一直以来都是一个相对棘手的问题,所以想要获得更佳的程序性能,我们非常有必要掌握多线程并发编程......
  • web.database() 创建的数据库对象线程安全吗?
    免责声明:尝试谷歌,一无所获,我管理我可能谷歌搜索得不好,但我没有想法。我有一个web.py应用程序,我需要定期运行一些数据库维护任务,并且我'我希望使用线程来完成此操作,以便Python应用程序完全独立。我的问题是:为了做到这一点,我必须采取什么样的预防措施(如果有的话)?计划是在调......
  • 线程状态转换?创建线程的几种方式?线程如何停止?
    线程状态转换新建(New)NEW:初始状态,线程被构建,但是还没有调用start()方法。可运行(Runnable)RUNNABLE:可运行状态,可运行状态可以包括:运行中状态和就绪状态。也就是可能正在运行,也可能正在等待CPU时间片。包含了操作系统线程状态中的Running和Ready。阻塞(Blocking)等......
  • 【Linux】多线程:线程池的创建、日志类、RAII互斥锁、单例模式:饿汉方式与懒汉方式
    目录一、线程池概念二、线程的封装及线程池类成员变量的介绍 三、单例模式饿汉方式(EagerInitialization)懒汉方式(LazyInitialization)四、RAII类型的互斥锁 五、日志类的实现六、简单的任务类创建七、线程池的创建 一、线程池概念线程池(ThreadPool)是一种基于......
  • 线程池监控1-监控任务执行时间
    1.背景线程池在执行任务过程中,往往由于个别耗时非常大的任务导致任务积压,影响性能,甚至导致系统崩溃,可以通过监控每个任务执行的耗时来提前预警,进而优化代码,使系统更稳定。2.实现代码实现原理:继承ThreadPoolExecutor,重写beforeExecute,在开始的时候记录开始时间,然后重写after......
  • JavaEE——多线程
    接着上篇博客我们已经学习了进程的相关概念,了解到进程里面的相关重要属性,那么这篇博客呢我们要学习一个新的知识点——线程!一、引入进程的目的首先引入进程这个概念,是为了解决“并发编程”这样的问题。因为CPU再往小了做,比较困难了,这是因为CPU进入了多核心的时代,要想进一......
  • JavaEE——多线程Thread 类及常见方法
    目录 一、Thread(Stringname)二、是否后台线程isDeamon()三、是否存活isAlive()四、run()方法和start()方法的区别五、中断线程法一:法二:六、线程等待join()七、线程休眠sleep()一、Thread(Stringname)定义:这个东西是给线程(thread对象)起一个名字。起一个......
  • Java多线程
    文章目录前言1实现多线程1.1多线程概述1.2多线程的实现方式1.3线程休眠1.4线程优先级1.5守护线程2线程同步2.1同步代码块2.2Lock锁2.3死锁3生产者消费者3.1生产者和消费者模式概述3.2阻塞队列基本使用3.3阻塞队列实现等待唤醒机制前言"劝君莫惜金......
  • C# 线程(Thread)
    一、基本概念1、进程首先打开任务管理器,查看当前运行的进程:从任务管理器里面可以看到当前所有正在运行的进程。那么究竟什么是进程呢?进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。一个正在运行的应用程序在操作系统中被视为一个进程,进程可......
  • Arthas thread(查看当前JVM的线程堆栈信息)
    文章目录二、命令列表2.1jvm相关命令2.1.2thread(查看当前JVM的线程堆栈信息)举例1:展示[数字]线程的运行堆栈,命令:thread线程ID举例2:找出当前阻塞其他线程的线程二、命令列表2.1jvm相关命令2.1.2thread(查看当前JVM的线程堆栈信息)使用场景:在Arthas中,thread命令用于查看和分......