Write a program with N threads. N can be taken as an argument from the main program. Thread i must print number i in a continuous loop.   ➤ First try without any synchronization between the threads, the threads will print their numbers in any order.   ➤ Then, add synchronization to your code using locks such that the numbers are printed in the order 1, 2, ..., N, 1, 2, ..., N, and so on.   Note: You may want to start with N = 2 and then move on to larger values of N.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

Write a program with N threads. N can be taken as an argument from the main program. Thread i must print number i in a continuous loop.

 

➤ First try without any synchronization between the threads, the threads will print their numbers in any order.

 

➤ Then, add synchronization to your code using locks such that the numbers are printed in the order 1, 2, ..., N, 1, 2, ..., N, and so on.

 

Note: You may want to start with N = 2 and then move on to larger values of N.

Write a program that has a counter as a global variable. Spawn T threads in the program, and let each
thread increment the counter N times in a loop. Print the final value of the counter after all the threads
finish-the expected value of the counter is N*T. Make sure you read the value of N and T from the user.
> First, run this program first without using locking across threads and observe the incorrect
updation of the counter due to race conditions (the final value will be slightly less than 10000).
> Then, use locks when accessing the shared counter and verify that the counter is now updated
correctly.
Test your program with different # of threads and counter values.
Task -2
Write a program with N threads. N can be taken as an argument from the main program. Thread i must
print number i in a continuous loop.
> First try without any synchronization between the threads, the threads will print their numbers
in any order.
> Then, add synchronization to your code using locks such that the numbers are printed in the
order 1, 2, ., N, 1, 2, ..., N, and so on.
Note: You may want to start with N = 2 and then move on to larger values of N.
Transcribed Image Text:Write a program that has a counter as a global variable. Spawn T threads in the program, and let each thread increment the counter N times in a loop. Print the final value of the counter after all the threads finish-the expected value of the counter is N*T. Make sure you read the value of N and T from the user. > First, run this program first without using locking across threads and observe the incorrect updation of the counter due to race conditions (the final value will be slightly less than 10000). > Then, use locks when accessing the shared counter and verify that the counter is now updated correctly. Test your program with different # of threads and counter values. Task -2 Write a program with N threads. N can be taken as an argument from the main program. Thread i must print number i in a continuous loop. > First try without any synchronization between the threads, the threads will print their numbers in any order. > Then, add synchronization to your code using locks such that the numbers are printed in the order 1, 2, ., N, 1, 2, ..., N, and so on. Note: You may want to start with N = 2 and then move on to larger values of N.
Expert Solution
steps

Step by step

Solved in 3 steps with 2 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY