1. 程式人生 > >java中的多執行緒 內部類實現多執行緒 Runable介面的實現

java中的多執行緒 內部類實現多執行緒 Runable介面的實現

 

/*
java.lang.Thead     
java中的多執行緒    類從  Thread  覆蓋run方法    呼叫start啟動x執行緒 
java中如果執行緒只剩後臺執行緒那麼程式終止執行 setDaemon設定為後臺執行緒     當進城中只剩下後臺執行緒 
java 中預設執行緒優先順序是5       MAX_PRIORITY   MINI_PRIORITY   NORM_PRIORITY    10  1   5
當優先順序10的時候執行緒始終執行 我們可以線上程的任何時候  設定優先順序

另外一種實現多執行緒的方法是實現 Runable介面   這樣的好處是可以共享一個變數 。。
看下面程式碼

*/
class  MultiThread
{
 public static void main(String []args)
 {
  //NewThread nt=new NewThread();
 /* nt.setPriority(Thread.MAX_PRIORITY);   //設定最大優先順序執行緒將一直執行
 // nt.setDaemon(true);//設定執行緒為後臺執行緒 如果執行緒只剩下後臺執行緒那麼程式   退出執行
  nt.start();//啟動執行緒
  while(true)
        System.out.println("main:"+Thread.currentThread().getName());
        */
           //     ThreadOne th=new ThreadOne();
             /*  new Thread(th).start();
               new Thread(th).start();
               new Thread(th).start();
               new Thread(th).start();
        */
 
     //內部類實現多執行緒
            ThreadTwo th=new ThreadTwo();
             th.getInner().start();
            th.getInner().start();
            th.getInner().start();
            th.getInner().start();
      
 
       
       
 } 
}

class NewThread  extends Thread   //java 中的多執行緒要從Thread類派生
{
 public  void  run()  //在我們的執行緒類中必須覆蓋run方法
 {
  while(true)
  {
       System.out.println(getName());
   //    Thread.yield(); //執行緒暫停執行  對於單CPU可以實現暫停 但是對於多CPU效果就不同了
 }
 }
}

class  ThreadOne implements Runnable
{
 int index=0;
 public  void run()
 {
  while(true)
  {
   System.out.println(Thread.currentThread().getName()+"+"+index++);
  }
 }
}


//內部類實現多執行緒
class  ThreadTwo
{
 int index=0;
 private class  Inner extends Thread
 {
 public  void run()
 {
  while(true)
  {
   System.out.println(Thread.currentThread().getName()+"+"+index++);
  }
 }
 
 }
 
Thread  getInner()
{
 return new Inner();

}