answersLogoWhite

0


Best Answer

A process is an instance of a computer program. Each process has its own address space and executes concurrently with other processes. If the system has multiple CPU cores, two or more processes may execute simultaneously.

Every process has at least one thread of execution, the main thread. Any thread within a process can instantiate a new thread of execution within that same process. Every thread shares the same address space as the process itself, however each thread has its own local stack. This makes it possible for two threads to call the same function concurrently. If the system has multiple CPU cores, two or more threads within the same processes may execute simultaneously.

Programmers use multiple thread to divide complex tasks into simpler tasks that can be executed concurrently. As a simple example, suppose we must search an unsorted array of 1 million elements. We could use a single thread and search the entire array from beginning to end but there's a 50/50 chance the element we are looking for resides in the second half of the array which means that we'd need to search through 500,000 elements on average. By dividing the array between two worker threads we should get a result twice as quickly because each thread now only searches an average of 250,000 elements. It therefore follows that the more threads we utilise, the quicker we should get a result, but that's only true up to a point because the number of threads we can physically execute simultaneously depends on the number of CPU cores available. If all threads execute upon the same core then there is no point in multi-threading this particular task. Nevertheless, the task is likely to take some time to complete so it would still be beneficial to delegate the task to at least one worker thread.

For example, if the main thread manages a message queue, the worker thread can post messages to the queue to keep the main thread abreast of its progress. Meanwhile, the user can continue to interact with the process, posting messages to the queue to perhaps initiate another search (in another thread). In this way the main thread's task is reduced to nothing more than processing messages and delegating tasks to worker threads. This is clearly an over-simplification, however it's this type of multi-threading that makes it possible for a graphical user interface to remain responsive to user interactions while time-consuming tasks are being carried out in the background by worker threads.

User Avatar

Wiki User

โˆ™ 2016-04-16 21:02:48
This answer is:
User Avatar
Study guides

What is a programming language

What does DOS stand for

What is a software that is distributed for free

What is application software

โžก๏ธ
See all cards
3.77
โ˜†โ˜…โ˜†โ˜…โ˜†โ˜…โ˜†โ˜…โ˜†โ˜…
26 Reviews
More answers
User Avatar

Wiki User

โˆ™ 2015-01-30 16:05:14

Every process has at least one thread, the main thread. However threads can spawn new threads. Every thread in a process shares the same virtual memory space but has its own stack. Threads allow a process to perform concurrent tasks.

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: What is the difference between process and threads?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Related questions

What is difference process based and thread based multitasking?

-> Difference between process based and thread based multitasking: 1) threads share the same address space where as process doesn't. 2) context switching between threads is usually less expensive than between processes. 3) cost of communication between threads is relatively low.


What is the difference between a computer process and thread in microprocessor?

A thread is a sub process in other words one process can contain multiple threads.


What is the difference between process and thread?

Basically no difference, except that process can use many threads; thread can use only one.


What is difference in operating threads or process threads?

operating thread is nothing but a simple programs or some information is provided in a row where process threads are the which a single sequence stream within a process


What is the difference between a thread and process?

The same metaphor: the difference of a person (thread) and a family (process) A process has at least 1 thread and may have many threads, while 1 thread must live within a process


What is the difference between a process and a thread?

The same metaphor: the difference of a person (thread) and a family (process) A process has at least 1 thread and may have many threads, while 1 thread must live within a process


Difference between child process and threads in operating systems?

One difference is that, when the main program terminates, all its threads are terminated. It is not the case for processes, because they are kind independent of the parent. When the parent terminates, the process keeps going unless the parent waits for it to die.


Is there any difference between pipe threads PT and national pipe threads NPT?

No n


Whats the difference between plumbing pipe threads and conduit pipe threads?

Plumbing pipe threads are squared and conduit pipe threads are tapered.


What is the difference between pipe threads and electrical conduit pipe threads?

Water pipe threads are tapered, electrical pipe is not tapered.


What is the difference between single and double screw threads?

screw thread are single threads which means they are not double


What is the relationship between threads and multiprocessing?

Processes are made of threads; threads within a process can be handled by different processors to improve server performance.

People also asked