Thread与Runnable 创建
Thread
public class MyThread extends Thread {
public MyThread(String name){
super(name);
}
public void run(){
for (int i = 0; i < 20; i++) {
//getName()方法 来自父亲
System.out.println(getName()+i);
}
}
}
// 测试类
public class Demo {
public static void main(String[] args) {
System.out.println("这里是main线程");
MyThread mt = new MyThread("TR");
mt.start();//开启了一个新的线程
for (int i = 0; i < 20; i++) {
System.out.println("MI:"+i);
}
}
}
Runnable
public class MyRunnale implements Runnable{
@Override
public void run(){
for(int i = 0 ; i < 20 ; i++){
System.out.println(Thread.cerrentThread().getName() + i);
}
}
}
// 测试类2
public class Demo02{
public static void mian(Stirng []args){
// 创建自定义类对象 线程任务对象
MyRunnable mr = new MyRunnable();
// 创建线程对象
Thread t = new Thread(mr,"Run对象");
t.start();
System.out.println("main的线程");
}
}
Thread和Runnable区别:
如果一个类继承Thread,他就不适合资源共享
,但是使用Runnable接口的话,则更容易实现资源共享
.
- 使用多个相同代码
共享一个
资源 - 可以
避免
java中单继承的局限性 - 线程池中
只能
放入Runnable或Callble类线程,不能
直接放继承了Thread的类