第一种 继承Thread类
package org.fan.threaddemo;
public class MyThread extends Thread{
private String name;
public MyThread(String name){
this.name=name;
}
public void run(){//覆写run()方法
for(int i=0;i<30;i++){
System.out.println("Thread运行:"+this.name+",i="+i);
}
}
}
//=================
package org.fan.threaddemo;
public class ThreadDemo01 {
public static void main(String[] args) {
MyThread mt1=new MyThread("线程A");
MyThread mt2=new MyThread("线程B");
mt1.run();
mt2.run();
}
}
//================
package org.fan.threaddemo;
public class ThreadDemo02 {
public static void main(String[] args) {
MyThread mt1=new MyThread("线程A");
MyThread mt2=new MyThread("线程B");
mt1.start();
mt2.start();
}
}
第二种 实现Runnable接口
package org.fan.runnabledemo;
public class MyThread implements Runnable{
private String name;
public MyThread(String name){
this.name=name;
}
public void run(){//覆写run()方法
for(int i=0;i<30;i++){
System.out.println("Thread运行:"+this.name+",i="+i);
}
}
}
//===================
package org.fan.runnabledemo;
public class RunnableDemo01 {
public static void main(String[] args) {
MyThread mt1=new MyThread("线程A");
MyThread mt2=new MyThread("线程B");
new Thread(mt1).start();
new Thread(mt2).start();
}
}
JavaLearning:多线程的两种实现方式,布布扣,bubuko.com
原文:http://blog.csdn.net/williamfan21c/article/details/38273919