Professional Documents
Culture Documents
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 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
11
Threading Mechanisms...
• Create a class that extends the Thread class
• Create a class that implements the Runnable
interface
MyThread MyClass
[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");
• }
•}
19
• class C extends Thread
• {
• public void run()
• {
• for(int k=1;k<=5;k++)
• {
• System.out.println("\t From ThreadC: k= "+k);
• }
• 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.