0% found this document useful (0 votes)
57 views25 pages

Multithread Programming Using Java Threads

The document discusses multithreading programming in Java, including how to create threads by extending the Thread class or implementing the Runnable interface, and provides an example of a program that creates three separate threads to print output. It also discusses thread life cycles and concludes with assigning students a task to research an example of a multithreading problem and solution.

Uploaded by

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

Multithread Programming Using Java Threads

The document discusses multithreading programming in Java, including how to create threads by extending the Thread class or implementing the Runnable interface, and provides an example of a program that creates three separate threads to print output. It also discusses thread life cycles and concludes with assigning students a task to research an example of a multithreading problem and solution.

Uploaded by

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

Multithread

Programming using Java


Threads
Esa Fauzi – Pertemuan 8

Fakultas Teknik
Program Studi Teknik Informatika
Universitas Widyatama
Agenda
• Introduction
• Thread Application
• Multithread programming in java
• Practice and assigment multithread programming:
• Homework assigment

2
Output
• Student can understand and implemented multithread programming
in Java programming language.
• Student can identify what problem that can solved by multihread
programming.
Multitasking dalam penggunaan
komputer
Multithreading ?
Definition
• Multithread is a condition where in 1 application has many process
that work in same time. Example 22 players in football game
Multithreaded Server: For Serving
Multiple Clients Concurrently

Client 1 Server Process


Process
Server
Threads
 Internet

Client 2
Process

7
Web/Internet Applications:
Serving Many Users Simultaneously

PC client

Internet
Server
Local Area Network

PDA
8
A single threaded program
class ABC
{
….
public void main(..) begin
{
… body
..
} end

9
A Multithreaded Program

Main Thread

start
start start

Thread A Thread B Thread C

Threads may switch or exchange data/results


10
Java Threads
• Java has built in thread support for Multithreading

11
Threading Mechanisms...
• Create a class that extends the Thread class
• Create a class that implements the Runnable
interface

Thread Runnable Thread

MyThread MyClass

(objects are threads) (objects with run() body)

[a] [b]

12
1st method: Extending Thread
class
• Create a class by extending Thread class and override run() method:
class MyThread extends Thread
{
public void run()
{
// thread body of execution
}
}
• Create a thread:
MyThread thr1 = new MyThread();
• Start Execution of threads:
thr1.start();
• Create and Execute:
new MyThread().start();

13
An example
class MyThread extends Thread {
public void run() {
System.out.println(" this thread is running ... ");
}
}

class ThreadEx1 {
public static void main(String [] args ) {
MyThread t = new MyThread();
t.start();
}
}

14
2nd method: Threads by
implementing Runnable interface
• Create a class that implements the interface Runnable and override run() method:
class MyThread implements Runnable
{
.....
public void run()
{
// thread body of execution
}
}
• Creating Object:
MyThread myObject = new MyThread();
• Creating Thread Object:
Thread thr1 = new Thread( myObject );
• Start Execution:
thr1.start();

15
Life Cycle of Thread
new
start()
I/O completed

ready resume()
Time expired/
notify() interrupted

sleeping blocked
waiting
dispatch
sleep()
wait() suspend()
running Block on I/O
completion

stop() dead 16
An example
class MyThread implements Runnable {
public void run() {
System.out.println(" this thread is running ... ");
}
}

class ThreadEx2 {
public static void main(String [] args ) {
Thread t = new Thread(new MyThread());
t.start();
}
}

17
A Program with Three Java Threads
• Write a program that creates 3 threads

18
Three threads example
• class A extends Thread
•{
• public void run()
• {
• for(int i=1;i<=5;i++)
• {
• System.out.println("\t From ThreadA: i= "+i);
• }
• System.out.println("Exit from A");
• }
•}

• class B extends Thread


•{
• public void run()
• {
• for(int j=1;j<=5;j++)
• {
• System.out.println("\t From ThreadB: j= "+j);
• }
• System.out.println("Exit from B");
• }
•}

19
• class C extends Thread
• {
• public void run()
• {
• for(int k=1;k<=5;k++)
• {
• System.out.println("\t From ThreadC: k= "+k);
• }

• System.out.println("Exit from C");


• }
• }

• class ThreadTest
• {
• public static void main(String args[])
• {
• new A().start();
• new B().start();
• new C().start();
• }
• } 20
Run 1
• [raj@mundroo] threads [1:76] java ThreadTest
From ThreadA: i= 1
From ThreadA: i= 2
From ThreadA: i= 3
From ThreadA: i= 4
From ThreadA: i= 5
Exit from A
From ThreadC: k= 1
From ThreadC: k= 2
From ThreadC: k= 3
From ThreadC: k= 4
From ThreadC: k= 5
Exit from C
From ThreadB: j= 1
From ThreadB: j= 2
From ThreadB: j= 3
From ThreadB: j= 4
From ThreadB: j= 5
Exit from B

21
Run2
• [raj@mundroo] threads [1:77] java ThreadTest
From ThreadA: i= 1
From ThreadA: i= 2
From ThreadA: i= 3
From ThreadA: i= 4
From ThreadA: i= 5
From ThreadC: k= 1
From ThreadC: k= 2
From ThreadC: k= 3
From ThreadC: k= 4
From ThreadC: k= 5
Exit from C
From ThreadB: j= 1
From ThreadB: j= 2
From ThreadB: j= 3
From ThreadB: j= 4
From ThreadB: j= 5
Exit from B
Exit from A

22
Practice
• There are 3 class : MimiPeri, MimiCucu, MangUdin
• Each class has thread or thread itself.
• MimiPeri class has a function that print sentence ‘MimiPeri buy a milk’
then 5 seconds after that print sentence ‘MimiPeri buy a pencils’
• MimiCucu class has a function that print sentence ‘MimiCucu buy a
gorilla’ then 5 seconds after that print sentence ‘MimiCucu buy a king
kong’
• MangUdin class has a function that print sentence ‘MangUdin is
handsome’ then 5 seconds after that print sentence ‘MangUdin is Cute’
• Create a main class that create 3 objects that, then running it.
Conclusion
• Multithreading programming is a programming a single process or thread to
create another threads and running it.
• Java has two mechanism multithread: with extends thread class and
implements Runnable interface.
• With extends Thread class, object will become a thread. But the disadvantage
is you can’t extend any other class which you required. (As you know, Java
does not allow inheriting more than one class).
• But when you implements Runnable, you can save a space for your class to
extend any other class in future or now.
• When you implements Runnable, it shares the same object to multiple
threads.
Task
• Search an example code that has problem in multithread
programming and its solution !
• Read, understand, and conclude the code !
• Next week each student will be asked about it.

You might also like