package thread;
public class Run_Thread implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<100;i++)
System.out.println("run"+i);
}
}
class ex_thread extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
for(int i=0;i<100;i++)
System.out.println("thread"+i);
}
}
package thread;
public class TestRun {
public static void main(String[] args) {
// TODO Auto-generated method stub
ex_thread e=new ex_thread();
Run_Thread r=new Run_Thread();//创建真实角色
Thread th1=new Thread(r);//创建代理角色+真实角色引用
//接口加静态态代理
e.start();
th1.start();
}
}
继承Thread +重写run()
启动:创建的子类对象+对象.start()
使用runnable创建线程
1.类实现runnable接口,重写run() ----》真实角色类
2.启动多线程 使用静态代理
1).创建真实角色
2)创建代理角色 Thread+真实角色引用
3)调用.start()启动线程
推荐使用runnable接口方式
1.避免单继承局限性
2.便于共享资源