【问题标题】:Poco Task Manager / Boost Threads mixing and matchingPoco 任务管理器 / Boost 线程混合匹配
【发布时间】:2012-11-24 14:33:36
【问题描述】:

我很难决定是否应该在我们的产品中使用 Poco。 我们目前使用提升,但提升是非常低的水平。我想使用 Poco 中的一些功能。 目前我只需要两个,任务管理器和计时器类,但是它们依赖于线程池 它使用 Poco::Thread 而不是 Boost::Thread 等。

我想删除我们当前的任务管理框架并使用 Poco 框架,因为它更适合。 这么说,我很担心这种情况的未来后果以及 Poco 对象和 Boost 对象的混合。

我可以看到其他一些 Poco 软件包的好处,也许我将来会使用它们,但现在,我真的只需要一个好的任务管理器。

这就是我如何看待我的选择
波科:
Pro – 我毫不费力地获得了一个经过良好测试的工作任务管理器。
缺点 - 我将在模块中引入另一个基础层库,未来的混合和匹配可能会成为问题。

提升:
亲 – 我继续使用 boost,我们没有其他依赖项。
缺点 – 编写 Poco 任务管理器/计时器的等效项需要时间,并且它不会
具有社区压力测试/代码检查的好处。 (我也在重新发明轮子)
缺点 - 我们错过了其他可能会提供很大帮助的 Poco 包,例如 xml、缓存、Unicode 支持等。

完全使用 Poco 并停止使用 Boost
Pro – 我们可以使用 Poco 的所有功能,这些功能都是以更高的抽象级别编写的,我们可以快速实现功能。
缺点 - 如果我们将来需要 Boost 中的某些东西,我们将无法使用它。
缺点 - 重新编写使用 boost 的当前代码需要大量工作。

当我查看实现时,我正在沿着混合它们的路线前进,它们看起来很相似,但问题已经提出,现在我不确定。
我一直在搜索这方面的文档,但没有发现任何结论,我希望得到社区对最可取的行动的回应。
我毫不怀疑更多的工程师会希望将 boot 与 Poco 一起使用,所以也许他们在搜索时会看到这个。

感谢您的宝贵时间。

【问题讨论】:

    标签: c++ boost poco-libraries taskmanager


    【解决方案1】:

    我们在项目中混合使用 Poco 和 boost,这种组合效果非常好。在我看来,boost 有一组很棒的低级算法,而 Poco 提供了一组非常有用的高级应用程序对象。这两个库之间没有明确的界限,但这就是我们使用它们的方式。例如boost 用于信号/插槽、foreach 等,Poco 用于线程、HTTP 服务、Unicode/UTF8 转换。这两个库都适用于 OS X、Windows、Linux、iOS 和 Android 上的通用代码。

    【讨论】:

    • 感谢 Graham 的回复,是的,我会以同样的方式看到它们,Poco 是一个更高的抽象,而 boost 是较低级别的工具集。现在从多个来源看来,他们一起工作,我越来越相信这不应该是一个问题。我也在查看 Unicode 包,因为它看起来不错。如果在接下来的几天里我没有听到任何不好的报道,我会很高兴将它们混合在一起。再次感谢您提供的信息。
    猜你喜欢
    • 2022-01-26
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多