Download ILUSTRASI THREAD DENGAN LINUX DAN JAVA

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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