Concurrency control refers to rules that determine how multiple users can access a shared resource simultaneously without interfering with each other. Lock-based protocols are commonly used to implement concurrency control in databases by controlling read and write access through shared and exclusive locks. Two-phase locking protocol establishes that transactions must acquire all locks in a growing phase before releasing any locks in a shrinking phase to help ensure consistency. Timestamp-based concurrency control assigns timestamps to transactions and uses their order to determine precedence if conflicts occur.