Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

1. (20 pts) For the following program, explain the interesting elements related

ID: 3829122 • Letter: 1

Question

1. (20 pts) For the following program, explain the interesting elements related to threads.

1 public class TaskThreadDemo {
2    public static void main (String args []) {
3    String [] sa = {"a", "X", "+", "."};
4    for (String s: sa) {
5      Runnable ps = new PrintChar (s, 200);
6      Thread ts = new Thread (ps, s);
7      ts.start ();
8    } // end for each character
9    } // end main
10 } // end class TaskThreadDemo
11
12 class PrintChar implements Runnable {
13   String ch;
14   int times;
15
16   public PrintChar (String c, int n) {
17     ch = c;
18     times = n;
19   } // end constructor
20
21   public void run () {
22     for (int i = 0; i < times; i++) {
23       System.out.print (ch);
24     } // end for loop
25   } // end method run
26 } // end class PrintChar

Explanation / Answer


1 public class TaskThreadDemo {
2 public static void main (String args []) {
3 String [] sa = {"a", "X", "+", "."};
4 for (String s: sa) {
5 Runnable ps = new PrintChar (s, 200); // runnable object(target object)
6 Thread ts = new Thread (ps, s); // creating threa object
7 ts.start (); // starting thread
8 } // end for each character
9 } // end main
10 } // end class TaskThreadDemo
11
   //THIS IS A RUNNABLE INTERFACE IMPLEMENTER
12 class PrintChar implements Runnable {
13 String ch;
14 int times;
15
16 public PrintChar (String c, int n) {
17 ch = c;
18 times = n;
19 } // end constructor
20
21 public void run () { // THis is the method run by the thread
22 for (int i = 0; i < times; i++) {
23 System.out.print (ch);
24 } // end for loop
25 } // end method run
26 } // end class PrintChar


Here, at line 6, we are creating a new thread that target new PrintChar object. We are passing cureent string that
will be printed 200 times in PrintChar class.

An Instance of Thread is an object like any other object in Java, it contains variables and methods which lives and dies on the heap. But a Thread of Execution is an individual process which has its own stack call. Even if you don’t create any thread in your program, thread will be running there and main() method will start that.

Every thread of execution begins as an instance of class Thread. In any case Thread objects needs to be created before creating Thread of Execution.

you need to implement a run() method provided by a Runnable interface. This method provides an entry point for the thread and you will put your complete business logic inside this method. Following is a simple syntax of the run() method

public void run( )

Once a Thread object is created, you can start it by calling start() method, which executes a call to run( ) method. Following is a simple syntax of start() method