关于两个类库的对比,poco和ace中的线程支持。

Damn_boy 2014-06-09 10:10:53
翻了翻两个类库线程功能的封装和抽象,
感觉差别并不是特别大。
两者都提供了基础的线程功能封装,
对于基础的封装,ace的略显得简陋。既所谓的ACE_Thread,开放的均为static方法,仅提供了基于平台的线程调用包装。
如果想直接使用这些基础的调用来编写一个功能,相比直接使用windows api并没有多大优势。
相对而言,poco则封装了整个线程,将其抽象为对象,并且将业务和线程功能独立开来,成为两个并不负责的类,一个是Runnable一个是Thread

对于一些线程基础设施的封装,例如tls,同步原语等,虽然功能大致相同,但是poco的语法相对于ace而且都要清晰明了的多。

在设计上,ACE相比Poco要好理解一些,读了一些poco的代码,发现里面有很多违背一些《经典书籍》中提到的最佳实践,因此是poco让我感到别扭的原因。但是如果知道原理,又能正确使用避免错误,而不是死读书的生搬硬套规范来开发,这也许就是poco做到的吧?!

对于一些高级的线程封装和抽象,我理解的并不是特别深刻。例如Active Object等,这在Poco和ACE中均有实现,但是在设计和使用上,有什么差异,还希望请有实践经验的人帮忙解答一下。

分数不够可以再加,只是希望能得到有实践经验的人的答复,增加对这两个不熟悉的类库的理解。
还请大神么赐教。
...全文
127 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧