This is a simple Java project that demonstrates the use of multithreading concepts including Runnable, Callable, and ExecutorService to perform various tasks concurrently. In this project, we have implemented three different multithreading examples:
1.Runnable Example: Multiple threads are created to print numbers from 1 to 100 concurrently.
2.ExecutorService Example: A thread pool with 10 threads is used to generate numbers from 1 to 100 concurrently.
3.Callable Example: We use Callable to generate random numbers and then sum them up.