使用Runnable接口实现线程本质上使用了静态代理
故重点有以下几步:
1.实现一个线程类并继承Runnable接口,重写run方法
2.使用时牢记静态代理的关键3点 一是创建真实角色 2是创建代理角色 3.代理角色.start()
使用Runnable接口,相比直接继承Thread类,有以下好处:1.避免单继承的局限性 2. 便于共享资源
举个例子:
线程类
package cpm.thread.creater;
public class Programmer implements Runnable {
@Override
public void run() {
for(int i=0;i<=100;i++)
{
System.out.println("线程----"+Thread.currentThread().getName());
}
}
}
测试类:
package cpm.thread.creater;
public class ProgrammerApp {
public static void main(String[] args) {
Programmer programmer=new Programmer();
Thread proxy=new Thread(programmer,"1");
Thread proxy2=new Thread(programmer,"2");
Thread proxy3=new Thread(programmer,"3");
proxy.start();
proxy2.start();
proxy3.start();
for(int i=0;i<=100;i++)
{
System.out.println("main----");
}
}
}
Thread proxy=new Thread(programmer,"1"); 中的第二个参数是线程的名字