Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

public class ParaT 2 0 2 3 extends RecursiveTask { int lo , hi , val; int [ ] arr; static final int CUT =

public class ParaT2023 extends RecursiveTask {
int lo, hi, val;
int[] arr;
static final int CUT=5;
ParaT2023(int[] a, int l, int h, int v){ lo=l; hi=h; arr=a; val=v;}
protected Integer compute(){
if((hi-lo)< CUT){
int ans =-1;
for(int i=(lo+1); i < hi; i++){
if ( arr[i]==val) ans=i;
}
return ans;
}
else {
ParaT2023 left = new ParaT2023(arr,lo,(hi+lo)/2,val);
ParaT2023 right= new ParaT2023(arr,(hi+lo)/2,hi,val);
left.fork();
int rightAns = right.compute();
int leftAns = left.join();
if (rightAns>-1) return rightAns;
return leftAns;
}}
public static void main(String[] args) throws Exception {
int [] arr ={0,1,2,3,4,5,0,7,8,0,10,11,12,13,14,15,0,17,18,19,20};
final ForkJoinPool fjPool = ForkJoinPool.commonPool();
int ans = fjPool.invoke(new ParaT2023(arr,0,arr.length,0));
System.out.println(ans);
}}// How would i determine the number of threads used to execute this code which is apparently 4, and how would i determine the output if it is 16.

Step by Step Solution

3.37 Rating (153 Votes )

There are 3 Steps involved in it

Step: 1

To determine the number of threads used to execute the code and the output if it is 16 we need to analyze the code and understand how it utilizes the ... blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Java How To Program Late Objects Version

Authors: Paul Deitel, Deitel & Associates

8th Edition

0136123716, 9780136123712

Students also viewed these Programming questions

Question

3. Use the childs name.

Answered: 1 week ago