GCC 4.7为C/C++带来事务内存扩展

根据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。

相关推荐