Absfract-Concurrent C/C++ is a superset of C and C++ that provides parallel programming facilities based on message passing. Upon porting Concurrent C/C++ to a shared memory multiprocessor, we felt it would be appropriate to supplement Concurrent C/C++ with explicit facilities for synchronizing accesses to shared data structures.The capsule is a shared memory access mechanism designed especially for Concurrent C/C++ to match the C++ data abstraction facility called the class. Capsules are like monitors but they have significant advantages. Capsules satisfy Bloom's criteria for expressiveness of synchronization conditions, support inheritance, allow operations to execute in parallel, and permit them to time out. Although many concepts used in capsules have been suggested elsewhere, they are synthesized in a way which offers many advantages over classical shared memory mechanisms. In this paper, I will motivate the design of capsules, briefly review and evaluate existing shared memory mechanisms, describe capsules, give examples of capsules, compare capsules with monitors, and discuss how capsules are implemented by the Concurrent C compiler.