This lecture covers an alternative to threads using Executors, basics of concurrency properties, monitors, race conditions, and concurrent program properties including safety and liveness. It also revisits the basics of locks, critical sections, synchronized blocks, and mutual exclusion.