Motivation
Pipelines can increase throughput when processing a stream of data.
Backgroud
Code To Use
Cakes
Looping
Java For Loop
Phasers
class Phaser (Guide to the Java Phaser)
- register
- arrive
- awaitAdvance
Questions To Ask Yourself
- What are my tasks?
- What work does each task need to do?
- Upon what does each task depend? 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.