这里介绍两种实现多线程的异步处理方式(继承Thread,实现Runnable)。
直接上代码看小案例实现效果:
1.继承Thread
public class testThread extends Thread{
private String name;
private int number = 5;
public testThread (String name){
this.name = name;
}
public void run(){
for (int i = 0 ; i < 100 ; i ++ )
{
if(number > 0){
System.out.println(this.name + "===" + number--);
}
}
}
public static void main(String args[]){
testThread t1 = new testThread("t1");
testThread t2 = new testThread("t2");
testThread t3 = new testThread("t3");
t1.start();
t2.start();
t3.start();
}
}
2.实现Runnable:
public class runnableTest implements Runnable{
private String name ;
private int number = 5;
public void run(){
for(int i = 0 ; i < 100 ; i++){
if(number > 0){
System.out.println(Thread.currentThread().getName() + "==" + number--);
}
}
}
public static void main(String[] args){
runnableTest test1 = new runnableTest();
runnableTest test2 = new runnableTest();
runnableTest test3 = new runnableTest();
Thread t1 = new Thread(test1,"t1");
Thread t2 = new Thread(test2,"t2");
Thread t3 = new Thread(test3,"t3");
t1.start();
t2.start();
t3.start();
}
}
3.这里还演示了多线程共同执行同一个任务的方法。
public class runnableTest implements Runnable{
private String name ;
private int number = 5;
public void run(){
for(int i = 0 ; i < 100 ; i++){
if(number > 0){
System.out.println(Thread.currentThread().getName() + "==" + number--);
}
}
}
public static void main(String[] args){
runnableTest test1 = new runnableTest();
Thread t1 = new Thread(test1,"t1");
Thread t2 = new Thread(test1,"t2");
Thread t3 = new Thread(test1,"t3");
t1.start();
t2.start();
t3.start();
}
}