Skip to content

Latest commit

 

History

History
78 lines (55 loc) · 4.29 KB

File metadata and controls

78 lines (55 loc) · 4.29 KB

concurrent-java

It covers some basic concurrent programs as well as parallel program examples. Interview level material.

Project Structure

This project contains Java examples organized into three main categories:

Starting Point

  • SumTask.java - Basic sum computation with single and multi-threaded approaches

📁 Basic Problems (src/main/java/interview/)

Basic concurrency problems and solutions:

Core Problems:

Bounded Buffer Implementations (interview/boundedbuffer/):

📁 Latch Examples (src/main/java/basic/)

Fundamental concurrency concepts and thread management examples:

📁 Exercise Examples (src/main/java/exercise/)

Practical parallel programming exercises:

Key Concepts Covered

  • Thread Management: Thread creation, pooling, and lifecycle management
  • Synchronization: Locks, semaphores, monitors, and condition variables
  • Concurrent Collections: Thread-safe data structures
  • Executor Framework: Thread pools and task execution
  • Classical Problems: Producer-consumer, dining philosophers, sleeping barber
  • Parallel Algorithms: Merge sort, matrix multiplication
  • Coordination Primitives: CountDownLatch, CyclicBarrier, ThreadLocal

Usage

Each Java file can be compiled and run independently. Most examples include a main method demonstrating the concept.

# Compile and run a specific example
javac src/main/java/basic/CountDownLatchExample.java
java -cp src/main/java basic.CountDownLatchExample

Prerequisites

  • Java 8 or higher
  • Basic understanding of multithreading concepts