Java ThreadGroup setMaxPriority()方法

2019-10-16 22:24:11

ThreadGroup類的setMaxPriority()方法用於設定組的最大優先順序。

語法

public final void setMaxPriority(int pri)

引數

  • pri:這是執行緒組的新優先順序。

範例

class NewThread extends Thread   
{  
    NewThread(String threadname, ThreadGroup tgob)  
    {  
        super(tgob, threadname);  
    }  
    public void run()  
    {  
        for (int i = 0; i < 10; i++)   
        {  
            try  
            {  
                Thread.sleep(10);  
            }  
            catch (InterruptedException ex) {  
                System.out.println("Thread " + Thread.currentThread().getName() + " interrupted"); }  
        }  
        System.out.println(Thread.currentThread().getName() + " [priority = " +   
           Thread.currentThread().getPriority() + "]");  
        System.out.println(Thread.currentThread().getName()+" finished execution");  
    }  
}   
public class ThreadGroupSetPriorityExp  
{  
    public static void main(String arg[]) throws InterruptedException,  
        SecurityException, Exception  
    {  
        // creating the thread group  
        ThreadGroup tg1 = new ThreadGroup("Parent threadGroup");  
        ThreadGroup tg2 = new ThreadGroup(tg1, "child threadGroup");  
        tg1.setMaxPriority(Thread.MAX_PRIORITY-3);  
        tg2.setMaxPriority(Thread.MIN_PRIORITY);  

        // creating a thread  
        NewThread t1 = new NewThread("Thread-1", tg1);  
        t1.setPriority(Thread.MAX_PRIORITY);  
        System.out.println(t1.getName() + " starts");  
        t1.start();  

        // creating another thread  
        NewThread t2 = new NewThread("Thread-2", tg2);  
        t2.setPriority(Thread.MAX_PRIORITY);  
        System.out.println(t2.getName() + " starts");  
        t2.start();  
    }  
}

執行上面範例程式碼,得到以下結果:

Thread-1 starts
Thread-2 starts
Thread-1 [priority = 7]
Thread-2 [priority = 1]
Thread-2 finished execution
Thread-1 finished execution