Program to demonstrate how to set a thread's priority in Java
package com.hubberspot.multithreading; public class ProducerConsumerTest { public static void main(String[] args) { // 3. Create a thread by instantiating // an object from the class Thread producer = new Producer(); Thread consumer = new Consumer(); // 4.(i) Give Producer class thread a priority of 1 // i.e. it has minimum priority producer.setPriority(Thread.MIN_PRIORITY); // 4.(ii) Give Consumer class thread a priority of 10 // i.e. it has maximum priority consumer.setPriority(Thread.MAX_PRIORITY); // 5. Call the start() method of the // thread object producer.start(); consumer.start(); // Overall three threads are created // 1. for main method , 2. for the Producer class // 3. for the Consumer class } } // 1. Create a class that extends Thread class Producer extends Thread { // 2. Overload the run method to perform // the desired task public void run(){ for (int i = 0; i < 10; i++){ System.out.println("I am Producer : Produced Apple " + i); // 1. one way to put thread to sleep // static method that pause current thread so that other thread // gets the time to execute //Thread.yield(); } } } class Consumer extends Thread { public void run(){ for (int i = 0; i < 10; i++){ System.out.println("I am Consumer : Consumed Apple " + i); //Thread.yield(); } } }Output of the program :