Design Issues
Concurrency control - layering of synchronization and control policies over base mechanisms
Services in threads - how and when to create and invoke thread-based services
Flow patterns - design of system composed of connected stages with assigned producer and consumer roles
Transactions - operations performed without interference from other threads
Notifications - information about changes in state and events
Scheduling - implementing proprietary scheduling schemes