Runnable接口实现多线程
创建线程另一途径就是用Thread类直接创建线程对象,构造方法是:
Thread(Runnable traget)
构造方法中的参数是一个Runnable类型的接口
创建线程对象时必须向构造方法的参数传递一个实现Runnable使用Runnable接口
接口类的实例,该实例对象称作所创线程的目标对象,当线程调用strat()方法后,一旦轮到它来享受CPU资源,目标对象就会自动调用接口中的run()方法
public class Demo44{
public static void main(String[] args){
House house = new house;
house.setCake(10);
Thread antRed = new Thread(house);
antRed.setName("红蚂蚁")
Thread antBlack = new Thread(house);
antRed.setName("黑蚂蚁")
antRed.start();
antBlack.start()
}
}
public class House implements Runnable{
int cake;
public void setCake(int c){
cake = c;
}
@Override
public void run(){
int m = 2;
while(true){
if(cake<=0){
System.out.println(Thread.currentThread().getName()+"进入死亡状态");
return;
}
cake = cake - m;
System.out.println(Thread.currentThread().getName()+"吃了"+m+"克蛋糕");
System.out.println(Thread.currentThread().getName()+"发现蛋糕还剩下"+cake+"克");
try{
Thread.sleep(1000);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
运行结果: