如果必须由多个线程执行单个任务, 则只有一个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
推荐阅读
- 如果我们直接调用run()方法而不是start()方法怎么办()
- Java中的线程组
- Java中的线程调度程序
- Java中的线程同步块
- Java中的线程同步
- Java线程静态同步示例
- Java线程和关闭钩子
- 小程序安卓渲染问题
- Android 自定义控件——图片剪裁