(4%) Implement the solution using a single thread (i.e., without using threads and only a main function with any other possible helper function for ease) with all the above conditions implemented in the correct order so that the results are correct. Reason about what can cause the algorithm to print unwanted results (think about the order in which you will write the above conditions). Provide your reasoning about the correct order and the result using single threaded application.

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

Write a C/C++ program that takes an input (array) from 1 to n (say n = 50) and displays the string representations of those numbers with following conditions

 

If the current number is divisible by 2, then print CSU

If the current number is divisible by 5, then print LB

If the current number is divisible by both 2 and 5, then print CSULB

If the number is neither divisible by 2 nor 5, then print the number

 

Example: 1           CSU    3          CSU    LB      CSU    7          CSU    9          CSULB      11        CSU    13        CSU    LB       CSU      17        CSU    19        CSULB …     

 

Tasks to do:

  1. (4%) Implement the solution using a single thread (i.e., without using threads and only a main function with any other possible helper function for ease) with all the above conditions implemented in the correct order so that the results are correct. Reason about what can cause the algorithm to print unwanted results (think about the order in which you will write the above conditions). Provide your reasoning about the correct order and the result using single threaded application.
  2. (4%) Implement a synchronized multithreaded version of CSULB with four threads. The same instance of CSULB (array of 1 to 50) will be passed to four different threads:
  • Thread 1 should call csu() to check if divisible by 2 then print CSU.
  • Thread 2 should call lb() to check if divisible by 5 then print LB.
  • Thread 3 should call csulb() to check if divisible by 2 and 5 then output CSULB.
  • Thread 4 should call number() which should only print the numbers.
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 2 images

Blurred answer
Knowledge Booster
Time complexity
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education