Here is a runnable task, called TaskThread. This task performs some work and the
ID: 3767869 • Letter: H
Question
Here is a runnable task, called TaskThread. This task performs some work and then periodically reports what percent of the work it has completed:
import java.util.*;
public class TaskThread implements Runnable {
private int taskNumber;
TaskThread(int number) {
taskNumber = number;
}
public void run() {
for (int i=0;i<=100;i+=20) {
// Perform some task ...
System.out.println("Task number: " + taskNumber
+ ", percent complete: " + i );
try {
Thread.sleep((int)(Math.random() * 1000));
}
catch (InterruptedException e)
{
}
}//end for
}//end main
}//end class
You're allow to have two threads. Write a main method to produce the following ouput:
Task number: 1, percent complete: 0
Task number: 0, percent complete: 0
Task number: 1, percent complete: 20
Task number: 0, percent complete: 20
Task number: 1, percent complete: 40
Task number: 1, percent complete: 60
Task number: 0, percent complete: 40
Task number: 0, percent complete: 60
Task number: 1, percent complete: 80
Task number: 1, percent complete: 100
Task number: 0, percent complete: 80
Task number: 2, percent complete: 0
Task number: 2, percent complete: 20
Task number: 0, percent complete: 100
Task number: 2, percent complete: 40
Task number: 3, percent complete: 0
Task number: 3, percent complete: 20
Task number: 3, percent complete: 40
Task number: 2, percent complete: 60
Task number: 3, percent complete: 60
Task number: 3, percent complete: 80
Task number: 2, percent complete: 80
Task number: 2, percent complete: 100
Task number: 3, percent complete: 100
Explanation / Answer
//import java.util.*;
public class TaskThread implements Runnable {
private int taskNumber;
TaskThread(int number) {
taskNumber = number;
}
public void run() {
for (int i=0;i<=100;i+=20) {
// Perform some task ...
System.out.println("Task number: " + taskNumber
+ ", percent complete: " + i );
try {
Thread.sleep((int)(Math.random() * 1000));
}
catch (InterruptedException e)
{
}
}//end for
}//end run
public static void main(String[] args) {
// declaring 2 threads
Thread t1, t2;
// creating 4 tasks
TaskThread task1 = new TaskThread(0);
TaskThread task2 = new TaskThread(1);
TaskThread task3 = new TaskThread(2);
TaskThread task4 = new TaskThread(3);
// creating threads for first 2 tasks and starting them
t1 = new Thread(task1);
t2 = new Thread(task2);
t1.start();
t2.start();
// creating threads for other 2 threads and starting them
t1 = new Thread(task3);
t2 = new Thread(task4);
t1.start();
t2.start();
}
}//end class