java实现线程开发的两种方式
第一种:继承Thread类
我们就可以认为当前的实现类就是一个线程类
运行时,每个Thread都拥有自己独立的run方法
第二种:实现Runnable接口(一般都当作共享资源)
而实现了Runnable接口的类并不是线程类,它只是一个可运行的对象
最终是要通过线程去执行的
运行时,被多个线程共享一个run方法。
start():让线程处于准备运行状态,真正运行时是调用run().
第一种方式:
package test;
public class MyThread extends Thread{//继承Thread类
public static void main(String[] args) {
//创建线程
MyThread t1=new MyThread();
MyThread t2=new MyThread();
//启动线程
t1.start();
t2.start();
}
//覆盖Thread中的run()
public void run (){
System.out.println(Thread.currentThread().getName()+"run...");
}
}
第二种方式:
package test;
public class MyRunnable implements Runnable {//实现Runnable接口
@Override
//重写run()
public void run() {
// TODO Auto-generated method stub
//Thread.currentThread().getName():获取默认的线程名
System.out.println(Thread.currentThread().getName()+"run...");
}
public static void main(String[] args) {
MyRunnable my=new MyRunnable();
//创建线程
Thread t1=new Thread(my);
//启动线程
t1.start();
}
}