2023 Using the code from the project chapter21 MicrosoftMonitorSample MicrosoftMonitorSample csproj create a C program that more realistically simulates the consumer producer situation | Assignment Collections
Computer Science 2023 c# Multithreading
2023 Using the code from the project chapter21 MicrosoftMonitorSample MicrosoftMonitorSample csproj create a C program that more realistically simulates the consumer producer situation | Assignment Collections
Using the code from the project chapter21MicrosoftMonitorSampleMicrosoftMonitorSample.csproj, create a C# program that more realistically simulates the consumer/producer situation:
-
Add a synchronized method to the class Cell to check if the cellContents field reached the maximum capacity (interpretation – the warehouse is full)Invokethis method in the WriteToCell methodto stop producing new products and to wait until the cellContents field has been decremented by the consumerthread below this maximum capacity.
-
Add another synchronized method to the class Cell to check if the cellContents field reached the minimum capacity (interpretation – the warehouse is empty). Invokethis method in the ReadFromCell methodto stop consuming new products and to wait until the cellContents field has been incremented by the producer thread above the minimum capacity.
-
Add an int parameter to the WriteToCell method to represent the number of items manufactured by the producer (interpretation – the producer may produce more than one item) and adjust the loop in the ThreadProdRunmethod to call the WriteToCell method passinga different int parameter valueeach time (e.g. use random selection) in the range from the minimum cell capacity defined in the requirement 2 above to the maximum cell capacity defined in the requirement 1 above. Select the number of the loop’s iterations so that your testing produces meaningful results. Adjust the WriteToCell method so, that every time the method is called, the cellContents field is incremented by the int value (representing the number of items manufactured by the producer) passed as an argument to this method. Make sure that the maximum capacity is not exceeded.
-
Add an int parameter to the ReadFromCell method to represent the number of items consumed by the consumer (interpretation – the consumer may consume more than one item) and adjust the loop in the ThreadConsRun method to call the ReadFromCell method passinga different int parameter valueeach time (e.g. use random selection) in the range from the minimum cell capacity defined in the requirement 2 above to maximum cell capacity defined in the requirement 1 above. Select the number of the loop’s iterations so that your testing produces meaningful results. Adjust the ReadFromCell method so, that every time the method is called, the cellContents field is decremented by the int value (representing the number of items consumed by the consumer) passed as an argument to this method. Make sure that the cellContents field does not fall below minimum capacity.
-
Modify the Main() method to allow to start the consumer and producer threads in any order.
-
Test your code to make sure that the synchronization works and that both the consumer and producer threads don’t violate minimum/maximum capacity requirements irrespectively of the order these threads start.
-
Justify and include into the report the selection of the synchronization techniques for the methods created to satisfy requirements 1 – 4 above.
-
Your code should provide detailed output of the execution results.
We give our students 100% satisfaction with their assignments, which is one of the most important reasons students prefer us to other helpers. Our professional group and planners have more than ten years of rich experience. The only reason is that we have successfully helped more than 100000 students with their assignments on our inception days. Our expert group has more than 2200 professionals in different topics, and that is not all; we get more than 300 jobs every day more than 90% of the assignment get the conversion for payment.