Threads, Computer Engineering

Assignment Help:

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.


Related Discussions:- Threads

What is testing, What is testing? List its types. Testing ensures that ...

What is testing? List its types. Testing ensures that the application is suitable for actual use and that it truthfully satisfies the requirements. Types are: Unit te

In which page replacement policies balady’s anomaly occurs, In which page r...

In which page replacement policies Balady’s anomaly occurs? FIFO that is First in First Out.

Software aspects - computer technology , Software Aspects: Software is...

Software Aspects: Software is a generic term covering the concepts, procedures and instructions which enable computer systems to do useful things. Usually, software is conceiv

Simplify the expressions by using boolean postulates, Simplify the given ex...

Simplify the given expressions using Boolean postulates Y = (A + B)(A‾ + C)(B + C) Ans. Y = (A + B)(A‾ + C)(B + C) = (A A‾ + AC + B A‾ + BC) (B + C) = (AC + B A‾ + BC) (B + C)

Command line argument value, Make a console application to show different m...

Make a console application to show different messages depending on the command line argument value. Use Select-case statements.(same to switch block)

Functional units of a computer system, Functional units of a computer syste...

Functional units of a computer system: Digital computer systems consist of 3 distinct units. These units are as follows:  Central Processing unit Input unit and Output unit.

What are the different layers in r/3 system, What are the different layers ...

What are the different layers in R/3 system? There are three layer:- Presentation Layer. Application Layer. Database Layer.

Explain the structure of a c program, Explain the Structure of a C Program?...

Explain the Structure of a C Program? Each C program consists of one or more functions one of the which must be main(). A function name is forever followed by a pair of parenth

Interaction design, This unit introduces the most important ID terminology,...

This unit introduces the most important ID terminology, explains why ID is important, and gives a description of the main ID activities and the characteristics of the ID process. I

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd