A Comparison of the Concurrency and Real-Time Features of Ada 95 and Java
Benjamin M. Brosgol · 2000
1. ABSTRACT Both Ada and Java support concurrent programming, but through quite different approaches. Ada has built-in tasking features with concurrency semantics, independent of the language’s OOP model, whereas Java’s thread support relies on OOP and is based on special execution properties of methods in several predefined classes. Ada achieves mutual exclusion through protected objects with encapsulated components; Java uses the classical “monitor” construct with “synchronized” methods/blocks. Ada models condition-based synchronization and communication through suspension objects, protected entries, and rendezvous; Java provides the low-level “wait” / “notification” methods. Both languages offer timing control; Ada additionally provides user-specifiable scheduling policies.