Senin, 02 April 2012

Thread

Thread

Kernel Threads

Kernel thread didukung secara langsung oleh sistem operasi: pembentukan thread, penjadualan, dan managemen dilakukan oleh kernel dalam ruang kernel. Karena managemen thread telah dilakukan oleh sistem operasi, kernel thread biasanya lebih lambat untuk membuat dan mengelola daripada pengguna thread. Bagaimana pun, selama kernel mengelola thread, jika suatu thread di block tehadap sistem pemanggilan, kernel dapat menjadualkan thread yang lain dalam aplikasi untuk dieksekusi. Juga, di dalam lingkungan multiprosesor, kernel dapat menjadualkan thread dalam prosesor yang berbeda. Windows NT, Solaris, dan Digital UNIX adalah sistem operasi yang mendukung kernel thread.


Cara Menggunakan Thread di Java


Essential class di java terdiri atas 5 :
- Exeption
- Basic I/O
- Concurrency
- Regular Expressions
- The Platform Environment
yang kita bahas di sini adalah tentang "Concurrency", Concurrency adalah Sebuah sisitem yang dapat menjalankan lebih dari satu
program,
di saat bersamaan.
contoh :
pada waktu menjalankan Mozilla kita dapat membuka lebih dari satu tab, seperti pada saat kita membuka google,
kita juga dapat membuka youtube.
Execution itu ada dua yaitu :
-       proses : yaitu sama seperti aplikasi/ program
- Thread : sesuatu yang mebuat agar kita dapat membuka program lebih dari satu.

nah pada Java ini memungkinkan kita untuk menjalankan 2 program secara bersamaan dengan menggunakan thread terssbut.
Strategi yang dapat kita lakukan untuk membuka 2 program secara bersamaan ada 2 cara yaitu :
- Directly (secara langsung) : dengan cara membuat suatu object thread.
- Indirectly (tidak secara langsung) : dengan cara memanajemen abstrac method thread, dan menjadikan
program/aplikasinya menjadi eksekutor.
berikut ini adalah contoh dalam menggunakan thread dengan strategi (Direct)
1. Menyediakan Runnable
public class HelloRunnable implements Runnable{
public void run(){
System.out.println(“Hello”);
}
           
public static void main(String args[]){
( new Thread(new HelloRunnable ())).start();
                    
                       }
}
2. subclass Thread
public class HelloThread extends Thread{
public void run(){
                   
                          System.out.println(“Hello”);
           
                          }
           
public static void main (String args[]){
(new HelloThread()).start();
          
                         }
}
Anda juga dapat menunda eksekusi dengan sleep.

public class SleepMessage{
public static void main (String args[])throws InteruptedException{
String importantInfo[] = {
};
                     
for (int i=0;i<importantInfo.length;i++){
//menunda 4 detik
Thread.sleep(4000);
}
}


dan cara untuk mengentikannya adalah dengan cara :

protected Boolean is Running=true;
public void run(){
while (is Running){
//do something
}
}
public void cmdStop(){
is Running=false;

Tidak ada komentar:

Posting Komentar