How thread is different from task? How thread programming is done?
Thread is different from the task in the following ways:-
A task describes a program that may need input files and generate output files as a result of its execution and applications are a collection of tasks. Tasks are submitted for execution, and their Output data is gathered at the conclusion. The way tasks are produced, the sequence in which they are executed, and whether they need data interchange to distinguish the application models that come under the task programming umbrella. A Task may be used to indicate what you want to perform, and then that Task may be attached to a Thread. Threads are utilized to finish the task by splitting it up into pieces and executing them individually in a distributed system.
A thread is a fundamental unit of CPU utilization that consists of a program counter, a stack, and a collection of registers. Threads have their program and memory areas. A thread of execution is the shortest series of programmed instructions that a scheduler can handle separately. Threads are a built-in feature of your operating system. The thread class provided by different programming languages such as .Net or Java provides a method for creating and managing threads.
OR,
The differences between a task and a thread are:-
1. The Thread class is used for creating and manipulating a thread in Windows. A Task represents some asynchronous operation and is part of the Task Parallel Library, a set of APIs for running tasks asynchronously and in parallel.
2. The task can return a result. There is no direct mechanism to return the result from a thread.
3. Task supports cancellation through the use of cancellation tokens. But Thread doesn't.
4. A task can have multiple processes happening at the same time. Threads can only have one task running at a time.
5. We can easily implement Asynchronous using ’async’ and ‘await’ keywords.
6. A new Thread()is not dealing with a Thread pool thread, whereas Task does use a thread pool thread.
7. A Task is a higher-level concept than a Thread.
Thread programming is done in the following way-
A program that demonstrates this is given as follows:
class ThreadDemo implements Runnable {
Thread t;
ThreadDemo() {
t = new Thread(this, "Thread");
System.out.printIn("Child thread: " + t);
t.start(); }
public void run() {
try {
System.out.printIn("Child Thread");
Thread.sleep(50);
} catch (InterruptedException e) {
System.out.printIn("The child thread is interrupted.");
}
System.out.println("Exiting the child thread");
} }
public class Demo {
public static void main(String args[]) {
new ThreadDemo();
try {
System.out.println("Main Thread");
Thread.sleep(100);
} catch (InterruptedException e) {
System.out.println("The Main thread is interrupted");
}
System.out.println("Exiting the Main thread");
} }
|
Comments
Post a Comment