java 创建线程的方式

在 Java 中,创建线程有以下几种方式:

  • 继承 Thread 类:创建一个类并继承 Thread 类,重写 run() 方法来定义线程执行的任务。
public class MyThread extends Thread {@Overridepublic void run() {System.out.println("Thread using extends Thread is running.");}public static void main(String[] args) {MyThread thread = new MyThread();thread.start();}
}
  • 实现 Runnable 接口:创建一个类实现 Runnable 接口,实现 run() 方法来定义线程执行的任务,然后将该 Runnable 对象传递给 Thread 类的构造方法。
public class MyRunnable implements Runnable {@Overridepublic void run() {System.out.println("Thread using implements Runnable is running.");}public static void main(String[] args) {MyRunnable myRunnable = new MyRunnable();Thread thread = new Thread(myRunnable);thread.start();}
}
  • 使用匿名内部类:可以使用匿名内部类来实现 Runnable 接口或直接重写 Thread 类的 run() 方法。
public class ThreadExample {public static void main(String[] args) {// 使用匿名内部类实现Runnable接口Runnable myRunnable = new Runnable() {@Overridepublic void run() {System.out.println("Thread using anonymous inner class is running.");}};Thread thread1 = new Thread(myRunnable);thread1.start();// 使用匿名内部类继承Thread类Thread thread2 = new Thread() {@Overridepublic void run() {System.out.println("Thread using anonymous inner class extending Thread is running.");}};thread2.start();}
}
  • 异步线程
    此方法在hutool工具包中。这样的方式来异步执行任务,通常需要借助线程池或者其他工具类来实现
   	 <!--Hutool Java工具包--><dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>${hutool.version}</version></dependency>
ThreadUtil.execAsync(new Runnable(){@Overridepublic void run() {...}});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/801831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Google视觉机器人超级汇总:从RT、RT-2到AutoRT/SARA-RT/RT-Trajectory、RT-H

前言 随着对视觉语言机器人研究的深入&#xff0c;发现Google的工作很值得深挖&#xff0c;比如RT-2 ​想到很多工作都是站在Google的肩上做产品和应用&#xff0c;​Google真是科技进步的核心推动力&#xff0c;做了大量大模型的基础设施&#xff0c;服(推荐重点关注下Googl…

Excel 多选实现

代码 Private Sub Worksheet_Change(ByVal Target As Range) Dim rngDV As Range Dim oldVal As String Dim newVal As String If Target.Count > 1 Then GoTo exitHandlerOn Error Resume Next Set rngDV Cells.SpecialCells(xlCellTypeAllValidation) On Error GoTo exi…

Cherno CPP学习笔记-01-背景知识

0、工具网站收集 C语言版本特性 https://en.cppreference.com https://www.cplusplus.com https://www.tutorialspoint.com/cplusplus https://www.learncpp.com https://github.com/fffaraz/awesomecpp https://stackoverflow.com 网页CPP编译器 [C] gcc 12.1.0 - Wa…

【华为OD机试C++】单词倒排

《最新华为OD机试题目带答案解析》:最新华为OD机试题目带答案解析,语言包括C、C++、Python、Java、JavaScript等。订阅专栏,获取专栏内所有文章阅读权限,持续同步更新! 文章目录 描述输入描述输出描述示例1示例2代码描述 对字符串中的所有单词进行倒排。 说明: 1、构成单…

Python人工智能应用--图像识别深度学习

1.像素 像素(缩写为px)是图像中的最小单位&#xff0c;由一个个小方格组成。 这些小方格都有一个固定的位置和颜色&#xff0c;共同决定了图像所呈现出来的样子。 2.分辨率 这些小方格的行数与列数又被叫做分辨率。我们常说的某幅图像的分辨率是1280720&#xff0c;指的就是…

设计模式之状态模式讲解

概念&#xff1a;又称为状态对象模式&#xff0c;该模式允许一个对象在其内部状态改变时改变其行为。状态模式的核心是封装&#xff0c;状态的变更引起行为的变动&#xff0c;从外部看来就好像该对象对应的类发生改变一样。 抽象状态&#xff1a;用以封装环境对象的一个特定状态…

Qt使用插件QPluginLoader 机制开发

简介&#xff1a; 插件(Plug-in,又称addin、add-in、addon或add-on,又译外挂)是一种遵循一定规范的应用程序接口编写出来的程序。 Qt 提供了2种APIs来创建插件&#xff1a; 一种高级API&#xff0c;用于为Qt本身编写插件&#xff1a;自定义数据库驱动程序&#xff0c;图像格…

计算机网络-运输层

运输层 湖科大计算机网络 参考笔记&#xff0c;如有侵权联系删除 概述 运输层的任务&#xff1a;如何为运行在不同主机上的应用进程提供直接的通信服务 运输层协议又称端到端协议 运输层使应用进程看见的好像是在两个运输层实体之间有一条端到端的逻辑通信信道 运输层为应…

导出加入域控的电脑清单

要导出加入域控的所有电脑清单&#xff0c;包括计算机名等基本信息&#xff0c;可以使用 PowerShell 中的 Get-ADComputer cmdlet。下面是一个基础示例脚本&#xff0c;用于从Active Directory (AD)中批量导出所有加入域的计算机名称及可能的其他相关信息&#xff0c;并将其保存…

嘉轩智能工业科技诚邀您参观2024第13届生物发酵展

参展企业介绍 自2005年成立以来&#xff0c;嘉轩一直致力于工业智能永磁滚筒的研发、制造及销售&#xff0c;具有十多年的从业经验&#xff0c;公司主营产品包括工业智能永磁滚筒、机电智能诊断、工业智能电机等&#xff0c;高效智能自驱动永磁滚筒为我公司目前主导产品&#x…

thinkphp6使用阿里云SDK发送短信

使用composer安装sdk "alibabacloud/dysmsapi-20170525": "2.0.24"封装发送短信类 发送到的短信参数写在env文件里面的 #发送短信配置 [AliyunSms] AccessKeyId "" AccessKeySecret "" signName"" templateCode"&…

SpringFramework实战指南(八)

SpringFramework实战指南(八) 5.1 场景设定和问题复现5.2 解决技术代理模式5.1 场景设定和问题复现 准备AOP项目 项目名:spring-aop-annotation pom.xml <dependencies><!--spring context依赖--><!--当你引入Spring Context依赖之后,表示将Spring的基础依赖…

第四十七章 为 Web 应用程序实现 HTTP 身份验证

文章目录 第四十七章 为 Web 应用程序实现 HTTP 身份验证Apache 中的标准 HTTP 身份验证 (mod_auth)在处理请求的同时在 CSP 中进行身份验证。 第四十七章 为 Web 应用程序实现 HTTP 身份验证 Apache 模块&#xff08;mod_csp*.so/dll 和 CSPa*[Sys].so/dll&#xff09;允许 I…

Go语言中如何实现继承

完整课程请点击以下链接 Go 语言项目开发实战_Go_实战_项目开发_孔令飞_Commit 规范_最佳实践_企业应用代码-极客时间 Go语言中没有传统意义上的类和继承的概念&#xff0c;但可以通过嵌入类型&#xff08;embedded types&#xff09;来实现类似的功能。嵌入类型允许一个结构…

第一部分 Vue讲解(代码版)

1.第一个vue实例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-w…

Android Activity 介绍

Activity Activity 是一个应用组件&#xff0c;用户可与其提供的屏幕进行交互&#xff0c;以执行拨打电话、拍摄照片、发送电子邮件或查看地图等操作。 每个 Activity 都会获得一个用于绘制其用户界面的窗口。窗口通常会充满屏幕&#xff0c;但也可小于屏幕并浮动在其他窗口之…

系统参数指标:QPS、TPS、PV、UV等

QPS QPS&#xff1a;Queries Per Second 是每秒查询率&#xff0c;是一台服务器每秒能够相应的查询次数&#xff0c;是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准&#xff0c;即每秒的响应请求数&#xff0c;也即是最大吞吐能力。 TPS TPS&#xff1a;Tra…

性能优化 - 你知道开发React项目中,可以做哪些性能优化吗

难度级别:中高级及以上 提问概率:75% 在React项目开发中,面临着比较大的问题就是组件更新以及重复渲染的问题,基于这两点,我们可以在日常开发工作中,可以通过以下几点,来提升React的性能,加快组件更新对比,避免过多的重复渲染问题。 …

MySQL - MySQL数据库的事务(二)

1. SQL标准中对事务的4个隔离级别都是如何规定的? 数据库中多个事务并发时可能产生的问题包括脏写、脏读、不可重复读、幻读几个问题,那么针对这些多事务并发的问题,实际上SQL标准中就规定了事务的集中隔离级别,用来解决这些问题。 在SQL标准中规定了4中事务隔离级别,就…

刷题DAY48 | LeetCode 198-打家劫舍 213-打家劫舍II 337-打家劫舍III

198 打家劫舍&#xff08;medium&#xff09; 你是一个专业的小偷&#xff0c;计划偷窃沿街的房屋。每间房内都藏有一定的现金&#xff0c;影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&#xff0c;如果两间相邻的房屋在同一晚上被小偷闯入&#xff0c;系统…