Threads, Computer Engineering

First, remember that different processes keep their own data in distinct address spaces. Threads, on the other hand, explicitly share their entire address space with one another. Although this can make things a lot faster, it comes with the cost of making programming a lot more complicated.

In Unix/POSIX, the threads API is composed of two main calls:


pthread create(), which starts a separate thread;


pthread join(), which waits for a thread to complete.

Notice that the general syntax for using these is:

pid = pthread_create(&tid, NULL, function_ptr, argument);

pthread_join(tid, &result);

Example:
void *run(void *d)
{
int q = ((int) d);
int v = 0;
for (int i=0; iv = v + some_expensive_function_call();
return (void *) v;
}
int main()

{
pthread_t t1, t2;
int *r1, *r2;
int arg1=100;
int arg2=666;
pthread_create(&t1, NULL, run, &arg1);
pthread_create(&t2, NULL, run, &arg2);
pthread_join(t1, (void **) &r1);
pthread_join(t2, (void **) &r2);
cout << "r1= " << *r1 << ", r2=" << *r2 << endl;
}
Notice that the above threads maintain different stacks and different sets of registers; except for those, however, they share all their address spaces. Also notice that if you were to run this code in a 2 core machine, it would be expected that it ran roughly twice as fast as it would in a single core machine. If you ran it in a 4 core machine, however, it would run as fast as in the 2 core machine, since there would be no suf?cient threads to exploit the available parallelism.

Posted Date: 3/12/2013 4:16:27 AM | Location : United States







Related Discussions:- Threads, Assignment Help, Ask Question on Threads, Get Answer, Expert's Help, Threads Discussions

Write discussion on Threads
Your posts are moderated
Related Questions
Question a) In multitasking Operating Systems, there are two kinds of multitasking such as the "Preemptive Multitasking" and the "Cooperative Multitasking". Explain the two me

MANAGERIAL BENEFITS Implement integrated reliability engineering and product assurance program in all aspects of the product life-cycle, covering purchase, engineering, R&D

how to become an ict enginer

Q. Explain about System Deadlock? A deadlock denotes to the condition when simultaneous processes are holding resources and putting off each other from finishing their executio

Explain Telnet Telnet is a Remote Login.

Layout pages, can describe sections, which can then be overridden by particular views making use of the layout. Major and overriding sections is optional.

Swing is a GUI toolkit for Java. It is one kind of the Java Foundation Classes (JFC). Swing haves graphical user interface (GUI) widgets such as text boxes, buttons, split-panes, a

Example Multi-layer ANN with Sigmoid Units - Artificial intelligence: We will discuss ourselves here with ANNs containing only 1 hidden layer, as this makes describing the back

Q. What are the principles of transport layer? Transport layer: This layer is the first end-to-end layer. Header of transport layer includes information which helps send the

Define a B tree of order m. B Tree of order m  A balanced multiway search tree of order m in which every non root node having at least m/2 keys is known as a B-Tree of order