根据GCC Wiki上的介绍,在GCC的下一个版本GCC 4.7中将支持事务内存技术。GCC表示,事务内存扩展已经纳入了GCC的工作日程中,在GCC 4.7中将可以使用。目前,该分支工作已成为Velox项目的一部分。
事务内存(Transactional Memory)是一种并行程序设计的方式,其来自于数据库管理系统中的事务(Transaction)概念。GCC称,“事务性内存旨在让线程编程更简单,特别是在利用了事务的不同线程间同步访问数据方面。”
事务的精确语义在C++11/C1X的内存模型中进行了定义(GCC 4.7中已合并C++11),关于GCC对C++事务扩展的规范描述你可以参见这个文档。GCC表示新的规范将很快发布。一份尚处于编写中的文档则透露GCC 4.7中的事务内存实现将非常灵活,其运行时库(libitm)可同时基于STM、HTM或者混合事务内存系统。
GCC表示,目前这一支持还只是实验性的。这也意味着,一些实现尚未完全完善。如果你在使用过程中发现性能不足,不该认为事务内存天生就是缓慢的,而应向GCC提交BUG。
GCC 4.7目前还处于开发阶段,不过据透露,该版本变化颇大,而且可能还有几个分支要合并。今年8月份,英特尔宣布开源Cilk Plus C和C++语言并行编程扩展,之后它便成为了GCC 4.7下的一个分支。
原文:http://www.iteye.com/news/23446
【编辑推荐】