Justify and include into the report the selection of the synchronization techniques for the methods created to satisfy requirements .

c# Multithreading

Using the code from the project chapter21\MicrosoftMonitorSample\MicrosoftMonitorSample.csproj, create a C# program that more realistically simulates the consumer/producer situation:

  1. 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.

 

  1. 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.

 

  1. 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.

 

  1. 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.

 

  1. Modify the Main() method to allow to start the consumer and producer threads in any order.

 

  1. 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.

  1. Justify and include into the report the selection of the synchronization techniques for the methods created to satisfy requirements 1 – 4 above.

 

 

  1. Your code should provide detailed output of the execution results.

    1. Enhance and test your code to make sure that it works with at least 5 producer threads and 3 consumer threads started in any random order.

     

    1. To simulate real life production/consuming/delivery delays, add Thread.Sleep method calls to the ReadFromCell and WriteToCell methods. Test your code with at least 3 sets of different sleep times (the sleep times for ReadFromCell and WriteToCell methods should not be the same) and present the analysis of the effect of delays (sleep times) on the behavior of the consumer/producer

Are you looking for a similar paper or any other quality academic essay? Then look no further. Our research paper writing service is what you require. Our team of experienced writers is on standby to deliver to you an original paper as per your specified instructions with zero plagiarism guaranteed. This is the perfect way you can prepare your own unique academic paper and score the grades you deserve.

Use the order calculator below and get started! Contact our live support team for any assistance or inquiry.

[order_calculator]