Add Fork/Join design pattern (#3227)#3550
Conversation
PR SummaryImplemented the Fork/Join concurrency pattern to sum a large array in parallel. Introduced a dedicated module fork-join containing App demo, ForkJoinSumCalculator wrapper, and SumTask RecursiveTask. Added unit tests for SumTask and ForkJoinSumCalculator, plus README documenting the pattern with examples and diagrams. Included Maven module (pom.xml) to package and run the demo. Changes
autogenerated by presubmit.ai |
There was a problem hiding this comment.
🚨 Pull request needs attention.
Review Summary
Commits Considered (1)
- 0f14977: Add fork-join pattern implementation
Files Processed (7)
- fork-join/README.md (1 hunk)
- fork-join/pom.xml (1 hunk)
- fork-join/src/main/java/com/iluwatar/forkjoin/App.java (1 hunk)
- fork-join/src/main/java/com/iluwatar/forkjoin/ForkJoinSumCalculator.java (1 hunk)
- fork-join/src/main/java/com/iluwatar/forkjoin/SumTask.java (1 hunk)
- fork-join/src/test/java/com/iluwatar/forkjoin/ForkJoinSumCalculatorTest.java (1 hunk)
- fork-join/src/test/java/com/iluwatar/forkjoin/SumTaskTest.java (1 hunk)
Actionable Comments (1)
-
fork-join/src/main/java/com/iluwatar/forkjoin/SumTask.java [50-55]
possible bug: "Guard against invalid index range in SumTask"
Skipped Comments (2)
-
fork-join/src/main/java/com/iluwatar/forkjoin/App.java [28-28]
performance: "High memory usage in demo due to full array materialization"
-
fork-join/pom.xml [41-41]
maintainability: "Main class configuration in assembly plugin"
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #3550 +/- ##
============================================
+ Coverage 83.24% 83.31% +0.07%
Complexity 4025 4025
============================================
Files 1060 1060
Lines 14246 14246
Branches 686 686
============================================
+ Hits 11859 11869 +10
+ Misses 2100 2091 -9
+ Partials 287 286 -1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Signed-off-by: SandhyaDevadiga <sandhyadevadiga8197@gmail.com>
There was a problem hiding this comment.
✅ LGTM!
Review Summary
Commits Considered (1)
- f5fe108: Add input validation for start > end in SumTask
Signed-off-by: SandhyaDevadiga sandhyadevadiga8197@gmail.com
Files Processed (2)
- fork-join/src/main/java/com/iluwatar/forkjoin/SumTask.java (1 hunk)
- fork-join/src/test/java/com/iluwatar/forkjoin/SumTaskTest.java (1 hunk)
Actionable Comments (0)
Skipped Comments (1)
-
fork-join/src/main/java/com/iluwatar/forkjoin/SumTask.java [37-44]
possible bug: "Guard against end exceeding array length."
Fixes #3227
What this PR does
Implements the Fork/Join concurrency pattern using a parallel array
summation example.
Files added
SumTask.java— RecursiveTask that splits the array and sums in parallelForkJoinSumCalculator.java— Wrapper class that manages the ForkJoinPoolApp.java— Demo showing parallel sum of 10 million numbersSumTaskTest.java— 6 unit tests for the recursive taskForkJoinSumCalculatorTest.java— 5 unit tests for the calculatorREADME.md— Pattern explanation with examples and diagramspom.xml— Maven module configuration