一-线程与进程:
线程被称为轻负荷进程,一个进程可以包括多个线程
多线程使在同一时间同一进程可以做多件事情
二-多线程的创建
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();
}
}
}