1. 程式人生 > >多執行緒——啟動

多執行緒——啟動

一-執行緒與程序:

執行緒被稱為輕負荷程序,一個程序可以包括多個執行緒

多執行緒使在同一時間同一程序可以做多件事情

二-多執行緒的建立

1-extends+覆蓋run方法

class NewThread extends Thread(){

 public void run()

}

NewThread thread = new NewThread();

thread.start();

2-implements+覆蓋run方法+此例項做引數建立Thread物件

class NewThreadRun implements Runnable{

public void run();

}

NewThreadRun n = new NewThread Run();

Thread thread = Thread(n);

thread.start();

3-匿名類

使用匿名類,繼承Thread,重寫run方法,直接在run方法中寫業務程式碼
匿名類的一個好處是可以很方便的訪問外部的區域性變數。
前提是外部的區域性變數需要被宣告為final。(JDK7以後就不需要了)

Thread t1= new Thread(){
            public void run(){
                //匿名類中用到外部的區域性變數teemo,必須把teemo宣告為final
                //但是在JDK7以後,就不是必須加final的了
                while(!teemo.isDead()){
                    gareen.attackHero(teemo);
                }              
            }
        };

public static void search(File folder,String search) {
        for(File f:folder.listFiles())
        {
            if(f.isDirectory())
            {
                search(f,search);
            }
            else if(f.getName().endsWith(".java"))
            {
                Thread thread = new Thread("Thread-"+f.getName()) {
                    public void run() {


                        try(FileReader fr = new FileReader(f);
                                BufferedReader br = new BufferedReader(fr);    )
                            {
                                char cs[] = new char[(int)f.length()];
                                br.read(cs);
                                if(String.valueOf(cs).contains(search))
                                {
                                    System.out.printf("ok,字串%s在檔案%s中%n",search,f.getAbsolutePath());
                                }
                            }
                            catch(IOException e)
                            {
                                e.printStackTrace();
                            }
                    }
                };
                thread.start();
                

            }
        }
    }