java中多线程有两种实现方式,一种是继承Thread类,另一种是实现Runnable接口(推荐使用)。下面来介绍这两种方法的使用:
1、继承Thread类
class MyThread extends Thread{
private String ThreadName;
public MyThread(String ThreadName){
this.ThreadName = ThreadName;
}
public void run(){
for(int i = 0;i < 10;i++){
System.out.println(ThreadName + ": " + i);
}
}
}
public class ThreadDemo{
public static void main(String args[]){
MyThread threadA = new MyThread("A");
MyThread threadB = new MyThread("B");
threadA.start();
threadB.start();
}
}
运行结果:
如上所示,A、B两个线程交替同步运行,先后由系统调度决定。
要注意要启动线程的时候,不是调用run(),而是调用start()。
2、实现Runnable接口
class MyRunnable implement Runnable{
public void run(){
for(int i = 0 ;i < 10;i++){
System.out.println(Thread.currentThread().getName() + " " + i);
}
}
}
public class ThreadDemo2{
public static void main(String args[]){
MyRunnable my = new MyRunnable();
new Thread(my,"A").start();
new Thread(my,"B").start();
}
}
也能和上面由同样的效果。实际上这种方法同样利用了Thread类。在Thread类中提供了public Thread(Runnable target)和public Thread(Runnable target,String name)两个构造方法。这两个构造方法都可以接收Runnable的对象进行构造,区别是一个可以自己命名,另一个会由系统自动命名。