In C#, threads allow for the concurrent execution of code, enabling you to perform multiple operations simultaneously. Threads are a fundamental feature in modern applications that require high performance and responsiveness, such as multi-user applications, real-time processing, and server-side systems.
Concept of Thread
Thread
A thread is the smallest unit of execution in a program. In a multi-threaded application, multiple threads run independently but share the same resources, such as memory space.
Process vs. Thread:
Process: A program in execution with its own memory space.
Thread: A lightweight subprocess within a process, sharing the same memory space and resources.
Multithreading
The ability to run multiple threads concurrently within a single process. C# provides tools to manage and control threads efficiently.
Threading in C#
Threads in C# are part of the System.Threading namespace. You can create and manage threads using various classes and constructs provided in this namespace.
Characteristics of a Thread
1. Independence: Each thread has its own execution context, such as the program counter, registers, and stack, but shares the memory space of the parent process.
2. Concurrency: Multiple threads within the same process can run in parallel, either on separate CPU cores (true parallelism) or through time-slicing (concurrent execution on a single core).
3. Lightweight: Threads are considered “lightweight” because they share the resources of the process, unlike processes, which have their own separate resources.
C# Threads Introduction – Interview Questions
Q 1: What is a thread?
Ans: A lightweight unit of execution within a process.
Q 2: Why use threads?
Ans: To perform multiple tasks concurrently.
Q 3: Namespace for threading?
Ans: System.Threading.
Q 4: Can multiple threads run in one process?
Ans: Yes.
Q 5: What is main thread?
Ans: The thread that starts program execution.
C# Threads Introduction – Objective Questions (MCQs)
Q1. What is a thread in C#?
Q2. Which namespace contains the Thread class in C#?
Q3. By default, how many threads does a C# program have when it starts?
Q4. What is the main benefit of multithreading in C#?
Q5. What is the default thread in any C# application called?