Java Thread.setPriority()

Tanım;

Theradlere çalışma önceliği vermek için kullanılan metoddur.

1 ile 10 arası tamsayı parametresi alır, önceliği en fazla olana 10 verilir, az olana işe işine göre 1'e kadar verilebilir.


Thread sınıfının enum tipleri şunlardır;

  • Thread.MIN_PRIORITY ( 1 değeridir )
  • Thread.NORM_PRIORITY ( 5 değeridir )
  • Thread.MAX_PRIORITY ( 10 değeridir)


=> enum yerine tamsayıda kullanılabilir.


Giriş;

package KodSozluk;

public class KodSozluk{

	public static void main(String[]args){

		isParcacigi thread1 = new isParcacigi();
		isParcacigi thread2 = new isParcacigi();
		isParcacigi thread3 = new isParcacigi();
		
		thread1.setPriority(Thread.MIN_PRIORITY);
		thread2.setPriority(Thread.MAX_PRIORITY);
		thread3.setPriority(Thread.NORM_PRIORITY);
		
		thread1.start();                          
		thread2.start(); 
		thread3.start(); 
	
	}
}

class isParcacigi extends Thread{
	
	public void run(){
			
		for(int i=0;i<5;i++){	
			System.out.println("Şuan çalışan iş parçacığı ->"+ this.getName());
		}
					
	}	
}


Çıkış;

Şuan çalışan iş parçacığı ->Thread-3
Şuan çalışan iş parçacığı ->Thread-3
Şuan çalışan iş parçacığı ->Thread-3
Şuan çalışan iş parçacığı ->Thread-3
Şuan çalışan iş parçacığı ->Thread-3
Şuan çalışan iş parçacığı ->Thread-2
Şuan çalışan iş parçacığı ->Thread-2
Şuan çalışan iş parçacığı ->Thread-2
Şuan çalışan iş parçacığı ->Thread-2
Şuan çalışan iş parçacığı ->Thread-2
Şuan çalışan iş parçacığı ->Thread-1
Şuan çalışan iş parçacığı ->Thread-1
Şuan çalışan iş parçacığı ->Thread-1
Şuan çalışan iş parçacığı ->Thread-1
Şuan çalışan iş parçacığı ->Thread-1


Görüldüğü üzere girişteki örnek kodda thread1'e ilk start vermemize rağmen önceliği yüksek olan başlamıştır.