| 在Generic沉默了一期之后(研究生的学业总是使人不得不投入百分之百的精力),这一期文章的可写内容突然多得令人似乎有点无所适从.例如,其中之一就是关于构造函数的讨论,特别是转发构造函数(forwarding constructor),(构造函数中的)异常处理,以及两段式(two-stage)对象构造.另一个可选主题是创建不完全类型的容器(例如list、vector或map)(顺便再回顾一下Yanslander技术[2]),这一任务可以借助于一些有趣的技巧来完成(当下的标准库容器并不能保证可存放不完全类型的对象)。
虽说以上两个候选主题都挺诱人,不过跟所谓的“锁无关(Lock-Free)”数据结构一比就只能靠边站了,后者是多线程编程的极重要技术之一。在今年的“Programming Language Design and Implementation”大会(http://www.cs.umd.edu/~pugh/pldi04/)上,Michael Maged展示了世界上第一个锁无关的(lock-free)内存分配器[7],跟那些小心翼翼地设计的、基于锁(lock-based)的,同时也更为复杂的内存分配器相比,Michael的锁无关的内存分配器在诸多测试下都表现得更为优越。 |
| |