Poco任务管理器/Boost线程混合和匹配
Poco Task Manager / Boost Threads mixing and matching
我很难决定是否应该在我们的产品中使用Poco。我们目前使用助推,但助推水平很低。我想使用Poco中的一些功能。目前我只需要两个,任务管理器和Timer类,但它们依赖于线程池它使用Poco::Thread over Boost::Thread等
我想删除我们目前的任务管理框架,使用Poco框架,因为它更适合。话虽如此,我担心这一点以及Poco对象和Boost对象混合后的未来后果。
我可以从其他一些Poco软件包中看到好处,也许我将来会使用它们,但现在,我真的只需要一个好的任务经理。
这就是我如何看待我的选择
Poco:
Pro–我毫不费力地就得到了一个经过良好测试的工作任务经理
Con–我将在模块中引入另一个基础层库,混合和
匹配可能是未来的一个问题
Boost:
Pro–我仍然使用Boost,我们没有其他依赖项
Con–编写相当于Poco任务管理器/计时器的程序需要时间,而且不会带来社区压力测试/代码检查的好处。(我也在重新发明轮子)
Con–我们错过了其他Poco软件包,这些软件包可能会对未来有很大帮助,即xml、缓存、Unicode支持等。
完全使用Poco并停止Boost
Pro–我们可以使用Poco的所有功能,这些功能都是在更高的抽象级别上编写的,我们可以快速实现这些功能
Con–如果我们将来需要Boost中的某些东西,我们将无法使用它。
Con–重新处理使用Boost的当前代码将需要大量工作
当我观察实施过程时,我一直在混合它们,它们看起来很相似,但问题已经提出,现在我不确定。
我一直在寻找这方面的文件,但没有发现任何结论,我希望能得到社区对最明智行动的回应
我毫不怀疑,会有更多的工程师想在Poco中使用boot,所以当他们搜索时,他们可能会看到这一点
谢谢你抽出时间。
我们在项目中使用了Poco与boost的混合,这种组合效果非常好。在我看来,boost有一组很棒的低级别算法,而Poco提供了一组非常有用的高级别应用程序对象。这两个库之间没有明确的界限,但我们就是这样使用它们的。例如,boost用于信号/插槽、foreach等,Poco用于线程、HTTP服务、Unicode/UTF8转换。这两个库都适用于OSX、Windows、Linux、iOS和Android的通用代码。
- 从不同线程使用int64的不同字节安全吗
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 在C++中使用cURL和多线程
- 为什么我的C#代码在调用回C++COM直到Task时会暂停.等待/线程.加入
- 在cuda线程之间共享大量常量数据
- 如何将元素添加到数组的线程安全函数?
- 线程,如果else语句,都是错误的上下文切换后,会发生什么
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 异常属于C++中的线程还是进程
- C++中的线程安全删除
- C++使用params创建线程函数会导致转换错误
- 类与私有变量的其他类之间的线程安全性
- 混合 c++ 和 .net 的线程本地存储
- 混合开放MP/MPI代码中的多线程发送/接收时出错
- 可以线程混合书面值
- Poco任务管理器/Boost线程混合和匹配
- 混合c++ 11线程操作和QThread操作
- 将 c++0x 线程与 gio GCancellable 混合是合法的吗?
- 在新托管线程中通过 C# 在混合模式程序集中调用 STL 矢量的push_back