Iced Cakes Pipeline
Contents
Motivation
Pipelines can increase throughput when processing a stream of data. We will gain additional experience with Phasers by building a software pipeline.
Backgroud
Code To Use
Cakes
Looping
Phasers
class Phaser (Guide to the Java Phaser)
Questions To Ask Yourself
- What are my tasks?
- What work does each task need to do?
- What, if anything, does each task depend upon? That is: what does each task have to wait for before it may proceed?
Code To Implement
class: | CakePipeline.java | |
methods: | mixBakeAndIceCakes | |
package: | pipeline.cake.studio | |
source folder: | student/src/main/java |
method: public static IcedCake[] mixBakeAndIceCakes(Mixer mixer, Baker baker, Icer icer, int cakeCount)
(parallel implementation required)
Testing Your Solution
Visualization
class: | CakePipelineVizApp.java | VIZ |
package: | leggedrace.viz | |
source folder: | student/src//java |
Click on the buttons on the right to visualize your solutions when you have implemented them.
Correctness
class: | CakePipelineTestSuite.java | |
package: | pipeline.cake.viz | |
source folder: | testing/src/test/java |
class: | PartialCreditLeggedRaceTestSuite.java | |
package: | leggedrace.studio | |
source folder: | testing/src/test/java |
When you are passing the tests and your visualization looks good, demo it to an instructor.