多執行緒——啟動
一-執行緒與程序:
執行緒被稱為輕負荷程序,一個程序可以包括多個執行緒
多執行緒使在同一時間同一程序可以做多件事情
二-多執行緒的建立
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();
}
}
}