download

Matakuliah
Tahun
Versi
: M0074/PROGRAMMING II
: 2005
: 1/0
Pertemuan 10
PEMROGRAMAN MULTITHREADING
1
Learning Outcomes
Pada akhir pertemuan ini, diharapkan mahasiswa
akan mampu :
• Mahasiswa dapat Menunjukkan konsep
multithreading dan penerapannya dalam
aplikasi (C3)
2
Outline Materi
•
•
•
•
•
•
•
Konsep Dasar
Membuat Thread
Mengeksekusi Thread sendiri
Method isAlive() dan join()
Prioritas Thread
Sinkronisasi
Komunikasi antar Thread
3
KONSEP DASAR
• Process based
• Thread based
• CPU time slice
4
MEMBUAT THREAD
• class java.lang.Thread
• interface java.lang.Runnable
5
MENGEKSEKUSI THREAD
•
•
•
•
Implement runnable
Method start()
Method run()
Contoh :
class ThreadBaru implements Runnable {
public ThreadBaru() {
Thread newThread = new Thread(this);
newThread.start();
}
6
MENGEKSEKUSI THREAD
public void run() {
for(int i=0;i<5;i++){
System.out.println(
"Dalam child thread ("
+ i + ")");
try{
Thread.sleep(100);
}catch(InterruptedException e) {}
}
}
}
7
METHOD isAlive() DAN join()
isAlive()
• Untuk mengetahui apakah suatu thread
masih dieksekusi/berjalan
join()
• Untuk menunggu suatu thread selesai
dieksekusi
8
PRIORITAS THREAD
• Tergantung Sistem Operasi
• Dapat diset dengan menggunakan method :
void setPriority(int level)
9
SINKRONISASI
• Untuk mengontrol akses ke suatu
resources
• Konsep monitor
• Sinkronisasi pada method
• Sinkronisasi pada objek
10
KOMUNIKASI ANTAR THREAD
• Method
– wait()
– notify()
– notifyAll()
11
RINGKASAN
• Method penting yang digunakan dalam
pemrograman multithreading adalah :
– start()
– run()
– isAlive()
– join()
– void setPriority(int level)
– wait()
– notify()
– notifyAll()
12