- Collection Framework in JavaCollections Class in JavaList Interface in Java with ExamplesArrayList in JavaVector Class in JavaLinkedList in JavaQueue Interface In JavaPriorityQueue in JavaSet in JavaHashSet in JavaLinkedHashSet in JavaMap in the JavaHashMap in JavaHashtable in JavaLinkedHashMap in Java
Java Thread Priority in Multithreading
In Java multithreading, each thread has a priority associated with it. Thread priority is an integer value ranging from 1 to 10, where 1 is the lowest priority and 10 is the highest priority. The default priority of a thread is 5.
Java thread priorities are used by the operating system to determine the order in which threads should be executed. Threads with higher priority are executed before threads with lower priority. However, it is important to note that thread priorities are only a suggestion to the operating system, and the actual behavior of the scheduler may vary depending on the implementation.
You can set the priority of a thread using the setPriority()
method of the Thread
class. Here's an example:
class MyThread extends Thread {
public void run() {
System.out.println("MyThread running with priority: " + getPriority());
}
}
public class Main {
public static void main(String[] args) {
MyThread t1 = new MyThread();
MyThread t2 = new MyThread();
t1.setPriority(Thread.MAX_PRIORITY);
t2.setPriority(Thread.MIN_PRIORITY);
t1.start();
t2.start();
}
}
In this example, we create two instances of MyThread
and set their priorities using the setPriority()
method. We set the priority of t1
to MAX_PRIORITY
(which is 10) and the priority of t2
to MIN_PRIORITY
(which is 1). We then start both threads, and in the run()
method of MyThread
, we print the priority of the thread.
When we run this program, we should see that t1
executes first, followed by t2
, because t1
has a higher priority than t2
. However, as mentioned earlier, the actual behaviour of the scheduler may vary depending on the implementation.
It is important to note that while thread priorities can be useful in some situations, they should not be relied upon as the sole mechanism for controlling thread execution. Other mechanisms, such as synchronization and wait/notify, should also be used to ensure correct and predictable behavior of your multithreaded programs.