多线程执行多任务
如何通过多线程执行单个任务?
如果必须由多个线程执行单个任务,则只有通过run()
方法。例如:
由多个线程执行单个任务的程序。
package com.zyiz; 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(); } }
执行上面示例代码,得到以下结果:
task one task one task one
多个线程执行单个任务的程序 -
package com.zyiz; 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(); } }
执行上面示例代码,得到以下结果:
task one task one
注意: 每个线程都在一个单独的调用堆栈中运行。
如何通过多线程执行多个任务(多线程中的多任务处理)?
如果想要通过多个线程执行多个任务,请使用多个run()
方法。例如:
通过两个线程执行两个任务的程序 -
package com.zyiz; 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(); } }
执行上面示例代码,得到以下结果:
task two task one
使用扩展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(); } }
执行上面示例代码,得到以下结果:
task two task one
使用实现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(); } }
执行上面示例代码,得到以下结果:
task two task one
下一篇:Java垃圾收集
分类导航
- Java教程
- Vim教程
- Swing教程
- Spring教程
- Spring Web Services教程
- Spring MVC教程
- Spring JDBC教程
- Spring Cloud教程
- Spring Boot教程
- Spring Boot CLI教程
- Spring Batch教程
- Spring AOP教程
- PDFBox教程
- JSP教程
- JSF教程
- JPA教程
- Java面向对象设计
- Java设计模式
- Java虚拟机教程
- Java泛型教程
- Java正则表达式教程
- Java数据类型教程
- Java并发编程教程
- Java密码学教程
- Java多线程教程
- Java国际化(i18n)教程
- JavaFX教程
- Java9教程
关注微信小程序
扫描二维码
程序员编程王