Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
15 views

Multithreading in Java

Uploaded by

Jigyashu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Multithreading in Java

Uploaded by

Jigyashu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Multithreading in java

There are two ways to creating a thread

 By creating a class that extends Thread (need to create function Run())


 By creating a class that implements Runnable (we pass an object of this class as
a parameter to Thread constructor)
So in the end we need a Thread object to create a Thread.

class TaskThread extends Thread {


private int n;

public TaskThread(int n) {
this.n = n;
}

@Override
public void run() { //this need to be defined
System.out.println("Inside Thread's Run() with value " + n);
for (int i = n; i < n + 100; i++) {
System.out.print(i + " ");
}
System.out.println("\nExiting Thread's Run() that has value " + n);
}
}

class TaskRunnable implements Runnable {


private int n;

public TaskRunnable(int n) {
this.n = n;
}

@Override
public void run() { //this need to be defined
System.out.println("Inside Runnable's Run() with value " + n);
for (int i = n; i < n + 100; i++) {
System.out.print(i + " ");
}
System.out.println("\nExiting Runnable's Run() that has value " + n);
}
}

public class Main {


public static void main(String[] args) {

TaskThread t1 = new TaskThread(0);


Thread t2 = new Thread(new TaskRunnable(100));

t1.start();
t2.start();
}
}
//we can set priority[1,10] to a thread. 5 is by default
//t1.setPriority(7)

//we can wait till a thread dies using t1.join().


//control will go to next line only when t1 has completed it’s execution

class TaskThread extends Thread {


private String ch;

public TaskThread(String ch) {


this.ch = ch;
}

@Override
public void run() { //this need to be defined
System.out.println("\nInside Thread's Run() with value " + ch);
for (int i = 0; i < 100; i++) {
System.out.print(ch + " ");
}
System.out.println("\nExiting Thread's Run() that has value " + ch);
}
}

class TaskRunnable implements Runnable {


private String ch;

public TaskRunnable(String ch) {


this.ch = ch;
}

@Override
public void run() { //this need to be defined
System.out.println("\nInside Runnable's Run() with value " + ch);
for (int i = 0; i < 100; i++) {
System.out.print(ch + " ");
}
System.out.println("\nExiting Runnable's Run() that has value " + ch);
}
}

public class Main {


public static void main(String[] args) throws InterruptedException {

TaskThread t1 = new TaskThread("🔴");

Thread t2 = new Thread(new TaskRunnable("🟡"));


t2.setPriority(10);

TaskThread t3 = new TaskThread("🟢");

Thread t4 = new Thread(new TaskRunnable("🔵"));

t1.start();
t2.start();

//run following lines only when t2 has died


t2.join();
t3.start();
t4.start();
}
}

//Thread.sleep(1000) to sleep for 1 second


//Thread.yield() causes the currently executing thread object to temporarily pause and
allow other threads to execute.

You might also like