Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Ilustrasi Thread Dengan Linux dan Java ILUSTRASI THREAD DENGAN LINUX DAN JAVA Lisensi Dokumen: Copyright © 2004 Kelompok 53.6 Seluruh dokumen di Slide ini dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari Kelompok 53.6 Copyright © 2004 Kelompok 53.6 1 Ilustrasi Thread Dengan Linux dan Java Linux Thread Thread lebih dianggap sebagai tasks, seperti halnya proses Linux menyediakan 2 jenis system call : 1. Fork() Mengcopy proses yang memanggilnya 2. Clone() Selain mengcopy proses yang memanggilnya, method ini membuat proses baru yang berbagi address space yang sama dengan proses yang memanggilnya. Java Thread Threads di Java dibuat dengan cara : 1. Meng-extends class Threads 2. Meng-implement interface Runnable Threads di Java diatur oleh Java Virtual Machine (JVM) Keunggulan Java Threads adalah: 1. JVM menggunakan prioritas preemptive berdasarkan algoritma penjadualan 2. Semua threads di Java mempunyai prioritas. Prioritas tertinggi dijadualkan untuk dieksekusi oleh JVM 3. Jika ada 2 thread yang prioritasnya sama, digunakan algoritma First In First Out (FIFO) Copyright © 2004 Kelompok 53.6 2 Ilustrasi Thread Dengan Linux dan Java Keadaan Threads di Java dibagi menjadi 4 keadaan : 1. New Sebuah thread pada keadaan ini ada ketika objek dari thread tersebut dibuat 2. Runnable Memanggil start() method untuk mengalokasikan memori bagi thread baru dalam JVM dan memanggil run() method untuk membuat objek. 3. Block Contohnya: sleep() atau suspend() 4. Dead: sebuah thread dipindahkan ke keadaan dead ketika run() method berhenti atau ketika stop() method dipanggil. Copyright © 2004 Kelompok 53.6 3 Ilustrasi Thread Dengan Linux dan Java Extending the Thread Class class Worker1 extends Thread { public void run() { System.out.println(“I Am a Worker Thread"); } } public class First { public static void main (String args[]) { Worker1 runner = new Worker1(); runner.start(); System.out.println(“I Am The Main Thread"); } } The Runnable Interface public interface Runnable { public abstract void run(); } Implementing the Runnable Interface class Worker2 implements Runnable { public void run() { Copyright © 2004 Kelompok 53.6 4 Ilustrasi Thread Dengan Linux dan Java System.out.println(“Iam worker Thread"); } } public class Second { public static void main(String args[]){ Runnable runner = new Worker2(); Thread thrd = new Thread(runner); thrd.start(); System.out.println(“I Am The Main Thread"); } } Thread Cancellation Thread thrd = new Thread(new InterruptibleThread()); Thrd.start(); . . . // now interrupt it Thrd.interrupt(); public class InterruptibleThread implements Runnable { public void run() { while (true) { Copyright © 2004 Kelompok 53.6 5 Ilustrasi Thread Dengan Linux dan Java /** * do some work for awhile */ if (Thread.currentThread().isInterrupted()) { System.out.println(“Interupsi!!"); break; } } // end of while // clean up and terminate } // end of run } // end of class InterruptibleThread Copyright © 2004 Kelompok 53.6 6