Penjadualan thread yang Runnable oleh Java Virtual Machine dilakukan dengan konsep preemptive dan mempunyai prioritas tertinggi. Dalam algoritma evaluasi ditentukan terlebih dahulu kriteria-kriterianya seperti utilisasinya dilihat dari segi waktu tunggu yang digunakan dan throughput yang disesuaikan dengan waktu turnaroundnya.
Java Virtual Machine menjadualkan thread menggunakan preemptive, berdasarkan prioritas algoritma penjadualan. Semua Java Thread diberikan sebuah prioritas dan Java Virtual Machine menjadualkan thread yang Runnable dengan menggunakan prioritas tertinggi saat eksekusi. Jika ada dua atau lebih thread yang Runnable yang mempunyai prioritas tertinggi, Java Virtual Machine akan menjadualkan thread tersebut menggunakan sebuah antrian secara FIFO.
Thread lain dijalankan bila terjadi hal-hal berikut ini:
Itu tadi penjelasan tentang java thread yang dapat saya share, semoga dapat membantu dan bermanfaat. Jika ada yang ingin ditanyakan silahkan komen di kolom komentar dibawah. Jangan lupa like fanspage kami ya :D
Terimakasih
*Untuk download di pintukos, hindari menggunakan UCbrowser, karena bisa jadi link download bisa error.
Penjadualan Java Thread
Java Virtual Machine menjadualkan thread menggunakan preemptive, berdasarkan prioritas algoritma penjadualan. Semua Java Thread diberikan sebuah prioritas dan Java Virtual Machine menjadualkan thread yang Runnable dengan menggunakan prioritas tertinggi saat eksekusi. Jika ada dua atau lebih thread yang Runnable yang mempunyai prioritas tertinggi, Java Virtual Machine akan menjadualkan thread tersebut menggunakan sebuah antrian secara FIFO.Keunggulan Penjadualan Java Thread
- Java Virtual Machine menggunakan prioritas preemtive berdasarkan algoritma penjadualan.
- Semua thread Java mempunyai prioritas dan thread dengan proritas tertinggi dijadualkan untuk dieksekusi oleh Java Virtual Machine.
- Jika terjadi dua thread dengan prioritas sama maka digunakan algoritma First In First Out.
Thread lain dijalankan bila terjadi hal-hal berikut ini:
- Thread yang sedang dieksekusi keluar dari status runnable misalnya diblok atau berakhir
- Thread dengan prioritas yang lebih tinggi dari thread yang sedang dieksekusi memasuki status runnable. Maka thread dengan prioritas yang lebih rendah ditunda eksekusinya dan digantikan oleh thread dengan prioritas lebih tinggi.
Prioritas Thread
Java Virtual Machine memilih thread yang runnable dengan prioritas tertinggi. Semua thread java mempunyai prioritas dari 1 sampai 10. Prioritas tertinggi 10 dan berakhir dengan 1 sebagai prioritas terendah. Sedangkan prioritas normal adalah 5.- Thread.MIN_PRIORITY = thread dengan prioritas terendah.
- Thread.MAX_PRIORITY = thread dengan prioritas tertinggi.
- Thread.NORM_PRIORITY = thread dengan prioritas normal.
Penjadualan Round-Robin dengan Java
public class Scheduler extends Thread {
public Scheduler() {
timeSlice = DEFAULT_TIME_SLICE;
queue = new Circularlist();
}
public Scheduler(int quantum) {
timeSlice = quantum;
queue = new Circularlist();
}
public addThread(Thread t) {
t.setPriority(2);
queue.additem(t);
}
private void schedulerSleep() {
try{
Thread.sleep(timeSlice );
}
catch (InterruptedException e){
};
}
public void run(){
Thread current;
This.setpriority(6);
while (true) {
// get the next thread
current = (Thread)qeue.getnext();
if ( current != null) && (current.isAlive())) {
current.setPriority(4);
schedulerSleep();
current.setPriority(2)
}
}
}
private CircularList queue;
private int timeSlice;
private static final int DEFAULT_TIME_SLICE = 1000;
}
public class TesScheduler{
public static void main()String args[]) {
Thread.currentThread().setpriority(Thread.Max_Priority);
Schedular CPUSchedular = new Scheduler ();
CPUSchedular.start();
TestThread t1 = new TestThread("Thread 1");
t1.start();
CpuSchedular.addThread(t1);
TestThread t2 = new TestThread("Thread 2");
t2.start();
CpuSchedular.addThread(t2);
TestThread t3 = new TestThread("Thread 1");
t3.start();
CpuSchedular.addThread(t3);
}
}
Itu tadi penjelasan tentang java thread yang dapat saya share, semoga dapat membantu dan bermanfaat. Jika ada yang ingin ditanyakan silahkan komen di kolom komentar dibawah. Jangan lupa like fanspage kami ya :D
Terimakasih
*Untuk download di pintukos, hindari menggunakan UCbrowser, karena bisa jadi link download bisa error.
0 Comments