Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Multi threading.  Multithreading adalah kemampuan yg memungkinkan kumpulan instruksi atau proses dpt dijalankan secara bersamaan dlm sebuah program.

Presentasi serupa


Presentasi berjudul: "Multi threading.  Multithreading adalah kemampuan yg memungkinkan kumpulan instruksi atau proses dpt dijalankan secara bersamaan dlm sebuah program."— Transcript presentasi:

1 Multi threading

2  Multithreading adalah kemampuan yg memungkinkan kumpulan instruksi atau proses dpt dijalankan secara bersamaan dlm sebuah program.  Thread adalah satu kumpulan instruksi yg akan dieksekusi secara independen  Kegunaan thread pada permainan( game) dan web browser

3 Sebuah program Thread 2 Thread 1 Thread 3 Daur hidup sebuah thread waktu

4  Thread dengan menggunakan kelas thread  Thread melalui Runnable

5  Cara ini dgn memperluas kelas thread dan menuliskan kembali kode pada metode run().  Bentuk : class namakelas extends Thread{ public void run(){ … }

6 public class Ujithread{ public static void main(String[] args){ Mobil m1 = new Mobil("M-1"); Mobil m2 = new Mobil("M-2"); m1.start(); m2.start(); } class Mobil extends Thread{ //konstruktor public Mobil(String id){ super(id); }

7 //mendefinisikan sendiri run() public void run() { String nama = getName(); for (int i=0; i<5; i++) { try{ sleep(1000); //tunggu 1 detik } catch(InterruptedException ie){ System.out.println("terinterupsi"); } System.out.println("Thread " + nama + " :Posisi " + i); }

8 Mobil m1 = new Mobil(“M-1”) m1.start(); class Mobil extends Thread{ … public void run() { }

9

10  Runnable sesungguhnya adalah sebuah interface.  Dengan mengimplementasikan interface ini, sebuah kelas yg menangani thread dapat diciptakan.

11 public class Ujithread2 { public static void main(String[] args){ Thread m1 = new Thread(new Mobil("M-1")); Thread m2 = new Thread(new Mobil("M-2")); m1.start(); m2.start(); }

12 class Mobil implements Runnable{ String nama; //konstruktor public Mobil(String id) { nama=id; }

13 public void run() { for(int i=0; i<5; i++) { try{ Thread.currentThread().sleep(1000); } catch(InterruptedException ie){ System.out.println("terinterupsi");cr } System.out.println("Thread " + nama + " :Posisi " + i); }

14

15  Sebuah Thread terus dieksekusi sampai salah satu kondisi berikut terjadi : 1. Eksekusi terhadap run() berakhir 2. Terinterupsi oleh eksepsi yg tidak tertangkap 3. Metode stop() dipanggil

16 public class Ujithread{ public static void main(String[] args){ Mobil m1 = new Mobil("M-1"); Mobil m2 = new Mobil("M-2"); m1.start(); m2.start(); } class Mobil extends Thread{ //konstruktor public Mobil(String id){ super(id); }

17 // beri komentar ketika thread berakhir boolean m1Berakhir = false; boolean m2Berakhir = false; do{ //cek keberadaan thread m1 if (!m1Berakhir && !m1.isAlive()) { m1Berakhir = true; System.out.println("Thread m1 berakhir"); }

18 // cek keberadaan thread m2 if (!m2Berakhir && !m2.isAlive()) { m2Berakhir = true; System.out.println("Thread m2 berakhir"); } }while (!m1Berakhir || !m2Berakhir);

19 //mendefinisikan sendiri run() public void run() { String nama = getName(); for (int i=0; i<5; i++) { try{ sleep(1000); //tunggu 1 detik } catch(InterruptedException ie){ System.out.println("terinterupsi"); } System.out.println("Thread " + nama + " :Posisi " + i); }

20

21  Sinkronisasi merupakan suatu upaya agar kode tertentu dijalankan secara berurutan dengan jaminan kode tersebut tdk akan dijalankan oleh yg lain dlm waktu bersamaan.

22 public class Ujithread4{ public static void main(String[] args){ Mobil m1 = new Mobil("M-1"); Mobil m2 = new Mobil("M-2"); m1.start(); m2.start(); }

23 class Mobil extends Thread{ //konstruktor public Mobil(String id){ super(id); } //mendefinisikan sendiri run() public void run() { String nama = getName(); SinkronisasiKeluaran.info(nama); }

24 class SinkronisasiKeluaran{ public static synchronized void info(String nama){ for (int i=0; i<5; i++) { try{ Thread.sleep(1000); //tunggu 1 detik } catch(InterruptedException ie){ System.out.println("terinterupsi"); } System.out.println("Thread " + nama + " :Posisi " + i); }

25


Download ppt "Multi threading.  Multithreading adalah kemampuan yg memungkinkan kumpulan instruksi atau proses dpt dijalankan secara bersamaan dlm sebuah program."

Presentasi serupa


Iklan oleh Google