**

Java多线程的4种实现方式

**

1:继承Thread并重写run方法,并调用start方法

/*** Java实现多线程的方式1* 继承Thread类,重写run方法* @author hongbo.zhao 2019年4月12日 上午7:12:35*/
class MyThread extends Thread {@Overridepublic void run() {//此处为thread执行的任务内容System.out.println(Thread.currentThread().getName());}
}public class Demo03 {public static void main(String[] args) {for(int i=0;i<2;i++) {Thread t = new MyThread();//输出://Thread-0 Thread-1t.start();}}
}

2:实现Runnable接口,并用其初始化Thread,然后创建Thread实例,并调用start方法

/*** Java实现多线程的方式2* 实现Runnable接口* @author hongbo.zhao 2019年4月12日 上午7:12:35*/
class MyThread implements Runnable {@Overridepublic void run() {//此处为thread执行的任务内容System.out.println(Thread.currentThread().getName());}
}public class Demo03 {public static void main(String[] args) {for(int i=0;i<2;i++) {Thread t = new Thread(new MyThread());//输出://Thread-0 Thread-1t.start();}}
}

3:实现Callable接口,并用其初始化Thread,然后创建Thread实例,并调用start方法


/*** Java实现多线程的方式3* 实现Callable接口* @author hongbo.zhao 2019年4月12日 上午7:12:35*/
class MyThread implements Callable<Integer> {@Overridepublic Integer call() throws Exception {System.out.println(Thread.currentThread().getName());return null;}
}public class Demo03 {public static void main(String[] args) {for(int i=0;i<2;i++) {//创建MyThread实例Callable<Integer> c = new MyThread();//获取FutureTaskFutureTask<Integer> ft = new FutureTask<Integer>(c);//使用FutureTask初始化ThreadThread t = new Thread(ft);//输出://Thread-0 Thread-1t.start();}}
}

4:使用线程池创建


/*** Java实现多线程的方式4* 线程池* @author hongbo.zhao 2019年4月12日 上午7:12:35*/
class MyThread implements Runnable {@Overridepublic void run() {System.out.println(Thread.currentThread().getName());}}class MyThread2 implements Callable<Integer> {@Overridepublic Integer call() throws Exception {System.out.println(Thread.currentThread().getName());return 0;}}public class Demo03 {public static void main(String[] args) {ExecutorService executorService = Executors.newFixedThreadPool(5);for(int i=0;i<2;i++) {executorService.execute(new MyThread());FutureTask<Integer> ft = new FutureTask<Integer>(new MyThread2());//输出
//          pool-1-thread-1
//          pool-1-thread-2
//          pool-1-thread-3
//          pool-1-thread-4executorService.submit(ft);}executorService.shutdown();}
}

Java多线程的4种实现方式相关推荐

  1. Java多线程的11种创建方式以及纠正网上流传很久的一个谬误

    创建线程比较传统的方式是继承Thread类和实现Runnable,也可以用内部类,Lambda表达式,线程池,FutureTask等. 经常面试会问到继承Thread类和实现Runnable的区别,然 ...

  2. Java多线程的三种实现方式(重点看Collable接口实现方式)

    1.通过继承Thread类来实现多线程 在继承Thread类之后,一定要重写类的run方法,在run方法中的就是线程执行体,在run方法中,直接使用this可以获取当前线程,直接调用getName() ...

  3. Java:简述Java多线程的四种实现方式

    关联文章:<Java:简述Java中的多线程编程> Java多线程实现方式主要有四种:继承Thread类.实现Runnable接口.实现Callable接口通过FutureTask包装器来 ...

  4. java多线程的6种实现方式详解

    多线程的形式上实现方式主要有两种,一种是继承Thread类,一种是实现Runnable接口.本质上实现方式都是来实现线程任务,然后启动线程执行线程任务(这里的线程任务实际上就是run方法).这里所说的 ...

  5. java多线程的几种实现方式

    1.继承Thread类,重写run方法 Thread类本质上是实现了Runnable接口的一个实例.因此,启动线程的唯一方式就是通过Thread类的start()方法,start()方法是个nativ ...

  6. java 多线程的一种实现方式

    private ThreadPoolExecutor threadPoolExecutor;/*** 获取线程池* @return*/private ThreadPoolExecutor getThr ...

  7. java多线程的几种状态

    Java线程既可以创建,也可以销毁,所以线程是有生命周期的,而线程的生命周期就可以用线程的六种状态来描述. 从Thread类的源码中可以看出线程一共有6种状态: 这六种状态分别是: 1. New:初始 ...

  8. Java单例模式的几种实现方式

    Java单例模式的几种实现方式 在Java 中,单例类只能有一个实例,必须创建自己的唯一实例,单例类必须给所有其他对象提供这一实例.Java 单例模式有很多种实现方式,在这里给大家介绍单例模式其中的几 ...

  9. 多线程python实现方式_python多线程的两种实现方式(代码教程)

    本篇文章给大家带来的内容是关于python多线程的两种实现方式(代码教程),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 线程是轻量级的进程,进程中可划分出多个线程,线程可独立的调度 ...

最新文章

  1. 成为GPT-3的甲方,让它来帮你设计网站
  2. linux nice线程,linux nice 线程
  3. java获取web.xml 参数_解析web.xml中在Servlet中获取context-param和init-param内的参数
  4. CentOS 7 MySql 解压版安装配置
  5. Python 3.10 正式发布,新增模式匹配,同事用了直呼真香
  6. jackson 读取多文件_Spring Boot系列之读取配置
  7. 微信小程序项目实战之天气预报
  8. Elasticsearch 实战1:ES 项目实战(一)Java 集成 Spring Data Elasticsearch(一):简介及环境搭建
  9. average diffusion distance
  10. 《R数据可视化手册》——2.5 绘制箱线图
  11. c语言关键用法大全,c语言关键字的用法详解
  12. 戒指戴在不同手指上的含义
  13. 阿里云账号注销踩坑实践记录
  14. 关于 国产麒麟系统Qt强制退出应用程序qApp->exit()无效 的解决方法
  15. [GIS] 火星坐标GCJ-02的实质 | 高德地图的实际坐标系
  16. Linux—教你两个方法轻松找回root密码
  17. 【考研英语语法】代词练习题
  18. 网络安全学习2个月,感觉什么都不会?
  19. Python日期时间差的计算(天/小时/分钟)及timedelta函数的使用(附python代码)
  20. 元启发式如何跳出局部最优?

热门文章

  1. python中多维数组_python学习笔记-多维数组
  2. 大一python题库刷题训练_python实现合工大试题库自动刷题
  3. python 框架 优化_python+unittest框架第六天unittest之优化测试报告
  4. 女生来大姨妈该怎么哄她?
  5. 吐血整理!近二十年全国数学联赛赛题大全,烧脑全集来啦!
  6. 这才是老公的正确用法,不吃就往死里打......
  7. java try finally connectoin close_Java SocketChannel類代碼示例
  8. mysql savepoint作用_savepoint原理
  9. contos6.5卸载php7,centos8 测地卸载php5.6 与卸载php7
  10. pythonpil库过滤图像contour_一秒钟带你走进P图世界-----(python)PIL库的使用