【多线程】创建线程有哪几种方式

news/2025/2/9 4:46:41/

目录

          • 1.继承Thread类
          • 2.实现Runnable接口
          • 3.实现Callable接口
          • 4.利用线程池

1.继承Thread类
  • 1.定义Thread类的子类,并重写该类的run()方法,该run()方法将作为线程执行体
  • 2.创建Thread子类的实例,即创建了线程对象
  • 3.调用线程对象的start()方法来启动该线程
2.实现Runnable接口
  • 1.定义Runnable接口的实现类,并实现该接口的run()方法,该run()方法将作为线程执行体
  • 2.创建Runnable实现类的实例,并将其作为Thread的target来创建Thread对象,Thread对象为线程对象
  • 3.调用线程对象的start()方法来启动该线程
3.实现Callable接口
  • 1.创建Callable接口的实现类,并实现call()方法,该call()方法将作为线程执行体,且该call()方法有返回值。然后再创建Callable实现类的实例
  • 2.使用FutureTask类来包装Callable对象,该FutureTask对象封装了该Callable对象的call()方法的返回值
  • 3.使用FutureTask对象作为Thread对象的target创建并启动新线程
  • 4.调用FutureTask对象的get()方法来获得子线程执行结束后的返回值
4.利用线程池
  • 1.本质上还是提交一个Runnable的任务,四种方式底层都是基于Runnable

http://www.ppmy.cn/news/35279.html

相关文章

eNSP 网络地址转换配置实验

关于本实验当使用私有IP地址的内部主机访问外网时,需要使用NAT将其私有IP地址转换为公有IP地址,此时需要在网关路由器上配置NAT来提供相应的地址转换服务。当网关路由器连接ISP的接口上未使用固定IP地址,而是动态地从ISP获取IP地址时&#xf…

Linux Debian11使用podman安装sqli-labs靶场环境

一、Sqli-labs简介 Sqli-labs是一个可以用来学习SQL注入的游戏教程,学习渗透可以借用这个工具来入门学习SQL注入的一些理论知识。 二、安装podman环境 Linux Debian11使用国内源安装Podman环境 三、podman安装sqli-labs靶场环境 1.podman搜索sqli-labs镜像 打…

大数加法【算法解析、代码模板、思路简单清晰】

791. 高精度加法 - AcWing题库 算法解析 大数加法其实本质上就是模拟 小学我们学的加法运算 分治 的思想 我们将一个很大的数字,拆成一个数的加法——分治思想 如何存储 如果对于一个真正很大的数字来说,可能long long都不支持(最多支持19…

Nginx入门讲解

Nginx入门讲解 Nginx Web服务介绍 nginx是个高性能的http和反向代理服务器: IMAP/POP3/SMTP服务器nginx性能稳定、性能强大、非常节约系统资源Nginx是高性能、轻量级的服务器;越来越多的企业使用nginx来代替Apache; nginx使用越来越广泛&…

JNI原理及常用方法概述

1.1 JNI(Java Native Interface) 提供一种Java字节码调用C/C的解决方案,JNI描述的是一种技术。 1.2 NDK(Native Development Kit) Android NDK 是一组允许您将 C 或 C(“原生代码”)嵌入到 Android 应用中的工具,NDK描述的是工具集…

文本三剑客之sed编辑器

文本三剑客:都是按行读取后处理。 grep 过滤行内容。awk 过滤字段。sed 过滤行内容;修改行内容。sed编辑器 sed是一种流编辑器,流编辑器会在编辑器处理数据之前基于预先提供的一组规则来编辑数据流。 sed编辑器可以根据命令来处理数据流中…

C语言数据结构初阶(8)----栈与队列OJ题

CSDN的uu们,大家好。这里是C语言数据结构的第八讲。 目标:前路坎坷,披荆斩棘,扶摇直上。 博客主页: 姬如祎 收录专栏:数据结构与算法栈与队列的知识点我➡➡队列相关点我➡➡栈相关2. 用栈实现队列原题链接…

【C/C++】程序的内存开辟

在C/C语言中,不同的类型开辟的空间区域都是不一样的. 这节我们就简单了解下开辟不同的类型内存所存放的区域在哪里. 文章目录栈区(stack)堆区(heap)数据段(静态区)常量存储区内存开辟布局图栈区…