如果必须由多个线程执行单个任务, 则只有一个run()方法, 例如: |
由多个线程执行单个任务的程序
class TestMultitasking1 extends Thread{
public void run(){
System.out.println("task one");
}
public static void main(String args[]){
TestMultitasking1 t1=new TestMultitasking1();
TestMultitasking1 t2=new TestMultitasking1();
TestMultitasking1 t3=new TestMultitasking1();
t1.start();
t2.start();
t3.start();
}
}
立即测试
Output:task one
task one
task one
由多个线程执行单个任务的程序
class TestMultitasking2 implements Runnable{
public void run(){
System.out.println("task one");
}
public static void main(String args[]){
Thread t1 =new Thread(new TestMultitasking2());//passing annonymous object of TestMultitasking2 class
Thread t2 =new Thread(new TestMultitasking2());
t1.start();
t2.start();
}
}
立即测试
Output:task one
task one
注意:每个线程在单独的调用堆栈中运行。
如何通过多个线程执行多个任务(多线程中的多任务)?
如果必须通过多个线程执行多个任务, 请使用多个run()方法, 例如: |
由两个线程执行两个任务的程序
class Simple1 extends Thread{
public void run(){
System.out.println("task one");
}
}
class Simple2 extends Thread{
public void run(){
System.out.println("task two");
}
}
class TestMultitasking3{
public static void main(String args[]){
Simple1 t1=new Simple1();
Simple2 t2=new Simple2();
t1.start();
t2.start();
}
}
立即测试
Output:task one
task two
与上述相同的示例, 其匿名类扩展了Thread类:
由两个线程执行两个任务的程序
class TestMultitasking4{
public static void main(String args[]){
Thread t1=new Thread(){
public void run(){
System.out.println("task one");
}
};
Thread t2=new Thread(){
public void run(){
System.out.println("task two");
}
};
t1.start();
t2.start();
}
}
立即测试
Output:task one
task two
与上述相同的示例, 其匿名类实现了Runnable接口:
由两个线程执行两个任务的程序
class TestMultitasking5{
public static void main(String args[]){
Runnable r1=new Runnable(){
public void run(){
System.out.println("task one");
}
};
Runnable r2=new Runnable(){
public void run(){
System.out.println("task two");
}
};
Thread t1=new Thread(r1);
Thread t2=new Thread(r2);
t1.start();
t2.start();
}
}
立即测试
Output:task one
task two
评论前必须登录!
注册