Create two threads, one display odd other even numbers
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.
Introduction
In multi-threaded programming, creating separate threads for specific tasks can efficiently utilize CPU resources and improve application performance. In this article, we will explore how to create two threads in a programming environment: one for displaying odd numbers and the other for displaying even numbers. We will discuss the technical concepts, provide code examples, and highlight considerations for synchronization and resource management.
Understanding Threads
A thread is a unit of execution within a process. Threads allow multiple sequences of instructions to run concurrently, sharing the same process resources but executing independently. Using threads can lead to improved performance by taking advantage of multi-core CPUs and better responsiveness.
Benefits of Threads
- Concurrency: Multiple tasks can run simultaneously.
- Utilization: Better CPU utilization can improve application performance.
- Responsiveness: Applications remain responsive by offloading tasks to separate threads.
Technical Concepts
Before diving into code examples, it's crucial to understand certain threading concepts:
- Thread Creation: Threads can be created using various methods depending on the programming language and environment.
- Synchronization: Handling shared resources to avoid conflicts and ensure data consistency.
- Lifecycle: Understanding the lifecycle from creation to termination.
Code Example
In the following example, we will use Python's threading
module to create two separate threads: one for printing odd numbers and the other for even numbers.
Python Code
targetspecifies the function the thread will execute.argspasses the arguments to the function.- Synchronization: Although not a concern in this example, when threads share resources, mechanisms like Locks or Semaphores should be used to ensure data integrity.
- Performance: Threads introduce overhead. Use only where benefits outweigh the cost.
- Deadlocks: Ensure no cyclic dependencies between threads which can cause deadlocks.
- Locks/Mutexes: Prevent multiple threads from accessing critical sections simultaneously.
- Semaphores: Control access to a shared resource by multiple threads.
- Condition Variables: Used to synchronize threads based upon certain conditions.
Related reading
- Creating a blocking QueueT in .NET?
- Creating a blocking QueueT in .NET?
- Creating a file asynchronously
- Creating exactly N threads with Grand Central Dispatch GCD
- Create zip file from byte
- Creating a logical exclusive or operator in Java
- Creating log4j Async logger programmatically
- Creating threads - new Thread vs Task.Factory.StartNew

OOD Fundamentals
Master object-oriented design from first principles, SOLID, design patterns, and classic interview problems with hands-on coding.
View the courseTrack what you have practised
A free account saves your progress, solutions and study plan across every problem on Codemia.
Interview Questions practice on Codemia
Over 8,000 real interview questions from top companies, searchable by company and role.