zoukankan      html  css  js  c++  java
  • 搜集C++实现的线程池

    现在很多语言都内置了线程池实现,但C++中却没有。本文列举一些C++实现的线程池工具。

    • Boost.Threadpool

          项目首页:http://threadpool.sourceforge.net

          Boost.Threadpool是一个基于Boost、跨平台的C++线程池库。Boost.Threadpool提供了一个便捷的任务调度异步的途径。线程池可以定制,动态管理,易于集成到您的软件项目中。该库已经在多个商业服务器程序中使用,并没有任何问题的处理高负荷业务。

          使用示例:

    #include "threadpool.hpp"
    void normal_task();
    void important_task();
    void execute_prioritized()
    {
      // Create prioritized thread pool
      boost::threadpool::prio_pool tp; //scoped_pool<boost::threadpool::prio_pool, 0> tp;
    
      // Add some tasks to the pool.
      tp += boost::threadpool::prio_task_func(5,   &normal_task);
      tp += boost::threadpool::prio_task_func(100, &important_task);
      tp += boost::threadpool::prio_task_func(7,   &normal_task);
    
      // Add the some threads to the pool. This will start the execution of the tasks.
      tp->resize(2);
    
      // The tasks are processed according to their priority:
      // important_task(100), nonrelevant_task(7), nonrelevant_task(5).
      tp->wait();
      // Now all tasks are finished and the pool will be destroyed safely when tp goes out of scope.
    }
    boost.threadpool
    • ffead-cpp

          项目首页:http://code.google.com/p/ffead-cpp

          这是一个雄心勃勃的项目,它旨在将C++带入Web开发的世界。正像在它的介绍页面所声明的那样:

      “该框架是为C++平台上快速发展的企业级应用而开发。 这是一个C++的Web框架,C++应用程序框架,C++的REST框架和C++的soap框架,这些框架都内置其中。 它包含Linux/Windows(通过Cygwin)的实现。它是第一个也是唯一的提供非侵入性的依赖注入、业务驱动的组件逻辑、基于POCO发展的C++应用程序框架。大部分的功能是由配置文件控制。”

    • POCO C++ libraries

          项目首页:http://pocoproject.org/

          POCO库是一个使用现代标准ANSI C++以及C++标准库实现的框架。该框架近似完美实现(压缩,数据访问,SSL,加密,XML,线程,IPC-任何你能想到的在程序开发中的东西,它都包含)。它采用Boost授权许可证,而且似乎有很多的用户。

    • Linux下的一个ThreadPool

          项目首页:http://www.hlnum.org/english/projects/tools/threadpool/index.html

          是一个非常简单的基于lib_pthread的实现。你可以基于它实现你的代码,而且很可能会按需进行一些进一步的修改。正如在其主页的介绍,它是:

    “一个基于POSIX线程库的线程池实现。它实现的池是阻塞的,直到有一个job到来,然后它选择一个空闲线程,并在其上运行这个job。如果此时没有可用的空闲线程,该线程池会阻塞直到某一正在运行job的线程结束”。

    • Windows下的Thread Pool API

          项目首页:http://msdn.microsoft.com/en-us/library/windows/desktop/ms686766%28v=vs.85%29.aspx

          令人惊讶的是Windows也提供了线程池管理的API,而且还有两套。一套用在Windows XP中,一套用在Windows Vista中,而现在微软只更新第二套API。

    欢迎留言补充!

  • 相关阅读:
    系统分析员、系统架构师、项目经理的区别
    C# 委托(Delegate) 事件(Event)应用详解
    项目管理的通俗解释
    什么是依赖注入
    程序员每天该做的事
    鸿蒙应用开发入门(三):开发第一个鸿蒙应用
    #2020征文手机# 零基础鸿蒙开发4 如何播放一个全屏视频(JS版)
    【资源下载】快来获取HarmonyOS官方通用规范图标
    #2020征文手机# 快速搭建一款鸿蒙分布式分歧终端机原型
    #2020征文TV#鸿蒙应用开发TVHelloWord (二) 传递数据、跳转
  • 原文地址:https://www.cnblogs.com/lizhenghn/p/3740186.html
Copyright © 2011-2022 走看看