/ How2j / 196浏览

Thread

多线程

三种方式调用

1、新建一个HeroThread类继承(extends)Thread,然后复写run方法

Hero monkey = new Hero("猴子",100,5);
Hero yase = new Hero("亚瑟",150,3);
Hero bigmiss = new Hero("孙尚香",80,6);
Hero luban = new Hero("鲁班",60,7);
TestThread t1 = new TestThread(monkey,yase);
public class TestThread extends Thread {
    public void run(){
        while (h2.life>0){
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            h1.attack(h2);
        }

    }
}

新建HeroThread类,调用start()方法

HeroThread ht = new HeroThread();
ht.start();

2、新建类Battle,实现implements Runnable,复写run方法。

public class Battle implements Runnable{
    private Hero h1;
    private Hero h2;
    public Battle(Hero h1,Hero h2){
        this.h1 = h1;
        this.h2 = h2;
    }
    @Override
    public void run() {}
}

借助一个线程对象的start()方法,才会启动一个新的线程。
所以,在创建Thread对象的时候,把battle1作为构造方法的参数传递进去,这个线程启动的时候,就会去执行battle1.run()方法了。

Thread t = new Thread(Battle b1);
t.start();

3、匿名内部类

new Thread(){
    public void run(){
//  战斗逻辑
    }}.start();