如果必须由多个线程执行单个任务,则只有通过run()方法。例如:
由多个线程执行单个任务的程序。

package com.yiibai;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();}
}

Java

执行上面示例代码,得到以下结果:

task one
task one
task one

Shell

多个线程执行单个任务的程序 -

package com.yiibai;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 classThread t2 = new Thread(new TestMultitasking2());t1.start();t2.start();}
}

Java

执行上面示例代码,得到以下结果:

task one
task one

Shell

注意: 每个线程都在一个单独的调用堆栈中运行。

如何通过多线程执行多个任务(多线程中的多任务处理)?

如果想要通过多个线程执行多个任务,请使用多个run()方法。例如:
通过两个线程执行两个任务的程序 -

package com.yiibai;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();}
}

Java

执行上面示例代码,得到以下结果:

task two
task one

Shell

使用扩展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();}
}

Java

执行上面示例代码,得到以下结果:

task two
task one

Shell

使用实现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();  }
}

Java

执行上面示例代码,得到以下结果:

task two
task one

原文出自【易百教程】,商业转载请联系作者获得授权,非商业转载请保留原文链接:https://www.yiibai.com/java_multithreading/multitasking-in-multithreading.html

如何通过多线程执行单个任务?相关推荐

  1. 推测的删除锁(Speculative Lock Elision):实现高并发多线程执行

    背景 SLE全称Speculative Lock Elision,我称之为推测的删除锁.这是一篇关于SLE的论文翻译,但是因为本人英语功底很差,所以翻译的不通顺而且会有很多错误的地方.之所以把它发出来 ...

  2. [Python]_[初级]_[多线程下载单个文件]

    场景 使用Python做自动化测试时,有时候需要从网络下载软件安装包并安装.但是使用urllib库时,默认都是单线程下载文件,如果文件比较小还好说,如果文件有20M时,普通的网速就要等待很长的时间.有 ...

  3. java new 多线程_Java多线程:Java多线程执行框架

    为什么需要执行框架呢? 使用一般的new方法来创建线程有什么问题呢?一般的new线程的方式一般要给出一个实现了Runnable接口的执行类,在其中重写run()方法,然后再在将这个执行类的对象传给线程 ...

  4. Python多任务(多线程执行带有参数的任务,利用threading创建线程时传入参数--args参数和kwargs参数)

    1.多线程执行带有参数的任务 以元组形式传参 以字典方式进行传参       (字典的key值和参数名要一致) 2.线程的注意点 线程之间执行是无序的 主线程会等待所有的子线程执行结束再结束 如果要主 ...

  5. plsql如何执行单个语句_在单个try-with-resources语句中仔细指定多个资源

    plsql如何执行单个语句 Java 7最有用的新功能之一是引入了try-with-resources语句 [AKA 自动资源管理 ( ARM )]. try-with-resources语句的吸引力 ...

  6. python使用线程池多线程执行,并得到返回的结果

    多线程的使用场景比如:频繁数据库连接,频繁的资源读取(如频繁读文件.玩命读kafka什么的) 多线程:适合IO密集型 多进程:适合计算密集型 使用线程池的好处是自动管理线程,不会导致线程资源浪费和代码 ...

  7. 【Golang】解决Go test执行单个测试文件提示未定义问题

    [Golang]解决Go test执行单个测试文件提示未定义问题 参考文章: (1)[Golang]解决Go test执行单个测试文件提示未定义问题 (2)https://www.cnblogs.co ...

  8. python 线程锁_Python3多线程执行任务含线程同步锁

    Python启动多线程执行任务,用线程锁实现同步分配任务,最后等待所有线程执行完毕#python3多线程演示 import threading import random import time to ...

  9. 多线程编程 - 单线程和多线程执行对比

    多线程编程 - 单线程和多线程执行对比 递归求斐波那契.阶乘与累加函数的执行.该脚本按照单线程的方式运行这三个函数,之后使用多线程的方式执行同样的任务,用来说明多线程环境的优点. myThread.p ...

最新文章

  1. 关系数据库非关系数据库_如何与关系数据库最佳配合
  2. Vue开发跨端应用(四)electron发布web应用并打包app
  3. java中ssh如何理解
  4. 不同的jar里边相同的包名类名怎么区别导入
  5. Koa(1)之——koa入门
  6. 链表的插入、删除、排序的程序
  7. 计算机网络(第八版) 谢希仁——知识点
  8. 汽车之家口啤数据爬虫
  9. FPGA通过JTAG固化到EPCS芯片时无效的一些解决
  10. 政府安全资讯精选 2017年第四期:聚焦美国网络安全新动态
  11. 如何在Edge中添加兼容性站点?
  12. 软约束、硬约束、Minimum Snap的轨迹优化方法
  13. 2021年全国压岁钱排行榜,大数据告诉你哪的红包最大?
  14. 什么从什么写短句_什么在什么,在什么,什么仿写句子,怎样写
  15. Oracle 登陆数据库的方式
  16. NOI2017酱油记(伪)
  17. NBU-查看磁带里备份的内容
  18. PHP语言入门难吗 需要学习哪些东西
  19. actix websocket消息处理流程源码剖析
  20. linux基础(1)-常见指令及权限理解

热门文章

  1. StringTokenizer类的用法
  2. 惠普打印机驱动服务器系统安装教程,Hp打印机驱动怎么安装,详细图文版教程...
  3. 个嵌入式牛人学习经历
  4. 【活动】微软社区秋日巡讲——Windows Phone 应用开发训练营
  5. 程序员恭喜了!11月起逼自己拿下这个证,年薪68万起!
  6. [集合源码]——ConcurrentHashMap源码分析
  7. 从零构建知识图谱-第二章知识图谱技术体系
  8. 关于find命令-perm 的用法
  9. Python3.0 如何抓取网页
  10. Install Qualcomm Development Environment