如何通过多个线程执行单个任务()

如果必须由多个线程执行单个任务, 则只有一个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

    推荐阅读