Question: 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

1 Expert Approved Answer
Step: 1 Unlock

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 ... View full answer

blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!