Java多线程的常用创建方式总结

Java现在有四种创建的方式:继承Threa类、实现Runnable接口、实现Callable接口、线程池

Thread、Runnable都在java.lang包下;Callable、线程池都在java.util.concurrent包下

1.继承Thread类,重写run方法

创建一个类继承Thread类,并重写run();因为run()是线程具体执行的方法

在测试类或者main()创建Thread对象,并调用start()启动线程

备注:start()是启动线程,run()是线程执行的业务方法

2.实现Runnable接口,通过参数方式创建线程

创建一个类实现Runnable接口并重写run

在测试类或者main()创建Thread对象,并传入该接口实现类对象,并调用start()启动线程

3.实现Callable接口,通过FutureTask来创建线程

创建一个类实现Callable接口,重写call()call()支持有返回值和抛异常Callable支持泛型

传入Callable对象,创建FutureFask类

备注:FutureTask实现了Runnable接口;FutureTask.get()可以获取call()返回值

创建Thread对象,并调用start方法启动线程

4.通过线程池方式创建线程

创建一个类实现Runnable或者Callable接口,并重写对应方法

创建一个线程池对象,并执行execute方法启动线程

备注:可以通过线程池方式管理线程个数等配置信息

几种创建方式想必大家都已了解,但在实际开发中大多数都是以线程池来操作线程的;

线程池优势:提升响应速度,提高资源重用率,便于管理

线程的生命周期

到此这篇关于Java多线程的常用创建方式总结的文章就介绍到这了,更多相关Java多线程的创建方式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java多线程编程之使用runnable接口创建线程

    1.将实现Runnable接口的类实例化. 2.建立一个Thread对象,并将第一步实例化后的对象作为参数传入Thread类的构造方法. 最后通过Thread类的start方法建立线程.下面的代码演示了如何使用Runnable接口来创建线程: package mythread;public class MyRunnable implements Runnable{ public void run() {  System.out.println(Thread.currentThread().get

  • Java多线程中线程的两种创建方式及比较代码示例

    1.线程的概念:线程(thread)是指一个任务从头至尾的执行流,线程提供一个运行任务的机制,对于java而言,一个程序中可以并发的执行多个线程,这些线程可以在多处理器系统上同时运行.当程序作为一个应用程序运行时,java解释器为main()方法启动一个线程. 2.并行与并发: (1)并发:在单处理器系统中,多个线程共享CPU时间,而操作系统负责调度及分配资源给它们. (2)并行:在多处理器系统中,多个处理器可以同时运行多个线程,这些线程在同一时间可以同时运行,而不同于并发,只能多个线程共享CP

  • Java创建多线程的两种方式对比

    采用继承Thead类实现多线程: 优势:编写简单,如果需要访问当前线程,只需使用this即可,无需使用Thead.currentThread()方法. 劣势:因为这种线程类已经继承了Thead类,所以不能再继承其它类. 示例代码: 复制代码 代码如下: package org.frzh.thread;    public class FirstThread extends Thread{      private int i;           //重写run方法,run方法的方法体就是线程执

  • Java多线程之线程的创建

    一.三种创建方式 基于什么创建 创建的方式 Thread类 继承Thread类 Runnable接口 实现Runnable接口 callable接口 实现callable接口 二.通过Thread类创建 2.1 步骤 自定义线程类继承Thread类 重写run()方法,编写线程执行体(当成main()方法用) 创建线程对象,调用start()方法启动线程 2.2 案例 创建两个线程,其中一个线程打印100以内的偶数,另一个线程打印100以内的奇数 //主方法 public class Demo0

  • Java面试知识点总结

    目录 基础篇 一.JAVA: 二.JDK JRE JVM的区别: 三.java的基本数据类型 四.switch默认接受的几种数据类型 五.修饰符的作用 六.Static修饰符 七.final,finally,finalize 三者区别 八.StringBuffer StringBuilder String 区别 九.String的常用方法 十.Java面向对象的特征 十一.抽象类与接口的区别 十二.List,Set,Collection,Collections 十三.Io流 十四.java Ex

  • Java多线程的常用创建方式总结

    Java现在有四种创建的方式:继承Threa类.实现Runnable接口.实现Callable接口.线程池 Thread.Runnable都在java.lang包下:Callable.线程池都在java.util.concurrent包下 1.继承Thread类,重写run方法 创建一个类继承Thread类,并重写run():因为run()是线程具体执行的方法 在测试类或者main()创建Thread对象,并调用start()启动线程 备注:start()是启动线程,run()是线程执行的业务方

  • 很多人竟然不知道Java线程池的创建方式有7种

    目录 前言 什么是线程池? 线程池使用 1.FixedThreadPool 2.CachedThreadPool 3.SingleThreadExecutor 4.ScheduledThreadPool 5.SingleThreadScheduledExecutor 6.newWorkStealingPool 7.ThreadPoolExecutor 线程池的执行流程 线程拒绝策略 自定义拒绝策略 究竟选用哪种线程池? 前言 根据摩尔定律所说:集成电路上可容纳的晶体管数量每 18 个月翻一番,因

  • java多线程JUC常用辅助类详解

    1.countDownLatch 减法计数器:实现调用几次线程后,在触发另一个任务 简单代码实现: 举例说明:就像五个人在同一房间里,有一个看门的大爷,当五个人都出去后,他才能锁门,也就是说 执行5次出门这个动作的线程后,才出发了锁门的这个动作 import java.util.concurrent.CountDownLatch; /** * @program: juc * @description * @author: 不会编程的派大星 * @create: 2021-04-24 16:55

  • java多线程开发ScheduledExecutorService简化方式

    目录 前言 java多线程的应用场景 应用场景一: 应用场景二: ScheduledExecutorService方法简介 实例 实例结果 前言 java开发,多多少少会接触到多线程的应用开发场景,博主之前做多线程的时候就两种方式,一个是继承Thread一个是实现Runnable接口,不过用的多的还是实现Runnable接口,因为实现Runnable接口可以做多线程资源共享!而java.util.concurrent.ScheduledExecutorService接口将大大简化多线程应用的开发

  • Java多线程实现四种方式原理详解

    1.继承Thread类,重写run方法 2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target 3.通过Callable和FutureTask创建线程 4.通过线程池创建线程 前面两种可以归结为一类:无返回值,原因很简单,通过重写run方法,run方式的返回值是void,所以没有办法返回结果 后面两种可以归结成一类:有返回值,通过Callable接口,就要实现call方法,这个方法的返回值是Object,所以返回的结果可以放

  • 浅谈java多线程编程

    一.多线程的优缺点 多线程的优点: 1)资源利用率更好 2)程序设计在某些情况下更简单 3)程序响应更快 多线程的代价: 1)设计更复杂 虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般都更复杂.在多线程访问共享数据的时候,这部分代码需要特别的注意.线程之间的交互往往非常复杂.不正确的线程同步产生的错误非常难以被发现,并且重现以修复. 2)上下文切换的开销 当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另一个线程的本地数据

  • 彻底搞懂Java多线程(一)

    目录 Java多线程 线程的创建 线程常用方法 线程的终止 1.自定义实现线程的终止 2.使用Thread的interrupted来中断 3.Thraed.interrupted()方法和Threaed.currentThread().interrupt()的区别 线程的状态 线程的优先级 守护线程 线程组 线程安全问题 volatile关键字 总结 Java多线程 线程的创建 1.继承Thread 2.实现Runnable 3.实现Callable 使用继承Thread类来开发多线程的应用程序

  • Java多线程编程详细解释

    目录 一.多线程的优缺点 多线程的优点: 多线程的代价: 二.创建java多线程 1.创建Thread的子类 2.实现Runnable接口 三.线程安全 四.java同步块 五.java线程通信 六.java中的锁 七.java中其他同步方法 八.java中的线程池 参考: 总结 一.多线程的优缺点 多线程的优点: 1)资源利用率更好 2)程序设计在某些情况下更简单 3)程序响应更快 多线程的代价: 1)设计更复杂 虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般都更复杂.在多线程

  • java多线程和并发包入门示例

    一.java多线程基本入门java多线程编程还是比较重要的,在实际业务开发中经常要遇到这个问题. java多线程,传统创建线程的方式有两种. 1.继承自Thread类,覆写run方法. 2.实现Runnable接口,实现run方法. 启动线程的方法都是调用start方法,真正执行调用的是run方法.参考代码如下: 复制代码 代码如下: package com.jack.thread; /** * 线程简单演示例子程序 *  * @author pinefantasy * @since 2013-

  • java 多线程Thread与runnable的区别

    java 多线程Thread与runnable的区别 java中实现多线程的方法有两种:继承Thread类和实现runnable接口 1,继承Thread类,重写父类run()方法 public class thread1 extends Thread { public void run() { for (int i = 0; i < 10000; i++) { System.out.println("我是线程"+this.getId()); } } public static

随机推荐