Java筆記二:

值得注意的是,儘管Java提供了10個優先級,但它與多數操作系統都不能很好地映射.比如Windows 2000有7個優先級,並且不是固定
的,而SUN公司的Solaris操作系統有2的31次方個優先級.如果希望程序能移植到不同的平臺中,應該確保在設置線程的優先級時,只使

用MAX_PRIORITY.NORM_PRIORITY.MIN_PRIORITY這三個優先級.這樣才能保證在不同的操作系統中,對同樣優先級的線程式採用同樣的

調試方式.

  一個線程創A建了另一個線程B,則線程B的優先級就和線程A的優先級是一樣的,比如主線程創建了另一個線程,則這個被創建的線程

式的優先級就和主線程的優先級是一樣的.

下面是一個例子:


public class Machine extends Thread{
 
 public void run()
 {
  for(int a=0;a<3;a++)
  {
   System.out.println(currentThread().getName()+":"+a);
   /*if(a==1 && currentThread().getName().equals("m1"))
    throw new RuntimeException("Wrong from Machine");
   try
   {
    sleep(100);
   }
   catch(InterruptedException e)
   {
    throw new RuntimeException(e);
   }*/
  }
 }
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
         Machine m=new Machine();
         m.setName("m1");
        
         Thread main=Thread.currentThread();
         System.out.println("the main thread's priority is:"+main.getPriority());
         m.start();
         System.out.println("the default priority is:"+m.getPriority());
         m.setPriority(MIN_PRIORITY);
         System.out.println("the min priority is:"+m.getPriority());
         //m.run();
         //System.out.println("Is machine alive "+m.isAlive());
         //System.out.println("main:end");
 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章