What would you like to do?

Single threaded Process and Multi-threaded Process?

already exists.

Would you like to merge this question into it?

already exists as an alternate of this question.

Would you like to make it the primary and merge this question into it?

exists and is an alternate of .

Overview A thread is a path of execution through a program. Single threaded programs have one path of execution, and multi-threaded programs have two or more paths of execution. Single threaded programs can perform only one task at a time, and have to finish each task in sequence before they can start another. For most programs, one thread of execution is all you need, but sometimes it makes sense to use multiple threads in a program to accomplish multiple simultaneous tasks. Threads the science A thread in computer science is short for a thread of execution. Threads are a way for a program to fork (or split) itself into two or more simultaneously (or pseudo-simultaneously) running tasks. Multiple threads can be executed in parallel across many computer systems. This is multithreading, and generally occurs by time slicing (similar to time-division multiplexing) across the computer systems. However, in a single processor environment, the processor 'context switches' between different threads. In this case, the processing is not literally simultaneous, for the single processor is really doing only one thing at a time. This switching can happen so fast as to give the illusion of simultaneity to an end user. For instance, many PCs may only contain one processor core, but one can run multiple programs at once, such as typing in a document editor while listening to music in an audio playback program. Although the user experiences these things as simultaneous, in truth, the processor quickly switches back and forth between these separate processes. On a multiprocessor or multi-core system, now coming into general use, threading can be achieved via multiprocessing, where different threads and processes can run literally simultaneously on different processors or cores. Threads exist within a process - every process has at least one thread, the 'main' thread. Threads share the process's resources, including memory and open files. This makes for efficient, but potentially problematic, communication. Why use multiple threads in applications? Historically, code written is sequential, which means, code is executed one instruction after the next in a monolithic fashion, with no regard to the many possible resources available to the program. Overall performance can be serverely degraded if the program performs a blocking call.
Why is it that many programs are sequential? One guess is that most of us think in a sequential manner. Parallelizing our thoughts does not come naturally nor is it an easy task. However, with the increasing availability of Symmetric-Multiprocessing machines, and even more advanced multi-core processors; programming multithreaded code is a skill worth learning. Threads can add substantial performance improvements to certain types of applications, even on single processor systems. Applications that require accessing data from multiple sources, performing different types of manipulation on data and/or transfering data to multiple end-points are all potential for threaded applications. Basically, anytime a program sequence may be stopped waiting; that sequence is a good candidate for creating a thread. A program sequence may be stopped waiting for data from a hardware device, waiting for user input or waiting for a specific state or condition to be met. NexusWare Core has enabled developers to develop and successfully deploy applications such as Lawful interception applications, Class 5 Soft-switch applications, SS7 line monitoring, SS7 STP, Suite of GSM mobile applications - SS7 Link replacement, Roaming Broker, Protocol converters, Radar data processing, defense applications and many more. These types of applications are complex and require access and manipulation of data from many different data sources. Creating multiple threads within these applications has shown dramatic performance gains. Multi-threading are a good fit for the types of applications that are performed on NexusWare target hardware.
36 people found this useful
Thanks for the feedback!

In .NET is CLR a process or a thread?

  Process .... it is responsible for managing the execution of the .NET programs , it is the same as JVM is for JAVA programs...

What is the difference between process and threads?

A process is an instance of a computer program. Each process hasits own address space and executes concurrently with otherprocesses. If the system has multiple CPU cores, two

What is the difference between single threaded and multi threaded process?

  A write-up of the answer to this question can be found here: http://msdn.microsoft.com/en-us/library/ms693344(VS.85).aspx   "There are two types of apartments: si

What is a zero threaded process?

  Answer   The term "zero threaded" appears to be a made up marketing term. None of the companies that claim their products feature a "zero threaded architecture" hav

Are Word and PowerPoint different processes or threads of a single process?

They are different processes. While both are part of the Microsoft Office suite, and their data is stored in the same area of the Windows Registry, they are two different exec

Why thread is called lightweight process?

A thread is similar to a separate process, in that it can do stuff (process) independently of other threads. But it is lightweight, since the operating system doesn't have to

Compare a process and a thread?

A process is a single program that is running in memory, which is assigned its own address space. Multiple processes can not share memory, and attempts to access memory outsid

Benefits of Multi-threaded Process?

Multi-Threaded processors are like caches in the way that they make multi-tasking easier. Some processors are "hyper-threaded", meaning they have many threads in comparison to

What is relationship between process and thread?

Process --1------------m-- Threads 1 process to many threads Bring up your Task Manager (if you are using a windows), Performance tap, you can see the number of process an

What is processes threads?

different paths of control in a program that a computer might run at the same time if it has parallel processing support for multithread execution. threads and processes are