Java三种方法实现多线程,继承Thread类,实现Runnable接口,实现Callable接口

目录

线程:

继承Thread类:

实现Runnable类:

实现Callable接口:

验证多线程:


线程:

定义:进程可以同时执行多个任务,每个任务就是线程。举个例子:一个Java程序,如果同时有两个循环同时进行,就是线程。 再比如,你用百度网盘,边看视频,边下载。

继承Thread类:

步骤写在代码里的

class mythread extends Thread
{@Override//2.重写run方法,将线程任务代码写在run方法里public void run() {for (int i = 0; i < 200; i++) {System.out.println("线程进行了"+i+"次");}}
}class Test
{public static void main(String[] args) {//3.创建线程对象mythread m1=new mythread();//4.调用start方法开启线程m1.start();}
}

实现Runnable类:

//1.编写一个类实现Runnable接口
class myrunable implements Runnable {@Override//2.重写run方法,将线程任务代码写在run方法里public void run() {for (int i = 0; i < 200; i++) {System.out.println("线程进行了" + i + "次");}}
}class Test1
{public static void main(String[] args) {//3.创建线程任务资源myrunable m1=new myrunable();//4.创建线程对象,将资源传入Thread t1= new Thread(new myrunable());//5.使用线程对象调用start方法开启线程}
}

实现Callable接口:

此方法可以有返回值

//1.编写一个类实现Callable接口,注意可以接收泛型
class mycallabel implements Callable<Integer>
{@Override//2.重写call方法,将线程任务代码写在call方法public Integer call() throws Exception {int sum=0;for (int i = 0; i < 200; i++) {sum+=i;System.out.println("线程进行了" + i + "次");}return sum;}
}class Test2
{public static void main(String[] args) {//3.创建线程任务资源对象mycallabel m1=new mycallabel();//4.创建线程任务对象,封装线程资源FutureTask<Integer> f1=new FutureTask<>(m1);//5.创建线程对象,传入线程任务对象Thread t1=new Thread(f1);//6.使用线程对象调用start方法t1.start();}
}

验证多线程:

验证多线程,最简单的方法,我们拿第三种举例子。

我们在最后加上一个循环。

然后就会发现这连个循环在交替打印,说明他们就是多线程

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

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

相关文章

力扣刷题--LCR 075. 数组的相对排序【简单】

题目描述 给定两个数组&#xff0c;arr1 和 arr2&#xff0c; arr2 中的元素各不相同 arr2 中的每个元素都出现在 arr1 中 对 arr1 中的元素进行排序&#xff0c;使 arr1 中项的相对顺序和 arr2 中的相对顺序相同。未在 arr2 中出现过的元素需要按照升序放在 arr1 的末尾。 …

实现UI显示在最上面的功能

同学们肯定遇到过UI被遮挡的情况&#xff0c;那如何让UI显示在最前面呢&#xff0c;先看效果 原理:UI的排序方式是和unityHierarchy窗口的层级顺序有关的&#xff0c;排序在下就越后显示&#xff0c;所以按照这个理论&#xff0c;当我们鼠标指到UI的时候把层级设置到最下层就好…

不一样的2024

当我们继续往前走时&#xff0c;发现身边的事物不再那么的陌生&#xff0c;也不再那边多的阻碍&#xff0c;不管怎么&#xff0c;2024将会不一样。 当我们走进审批流时&#xff0c;全面石荒芜的&#xff0c;所以自己构建了一个体系。 当我们转向开源时&#xff0c;发现开源与…

nacos(一) 安装

一 nacos 1.4.7安装 安装 nacos-server nacos官方下载 说明&#xff1a; 下载1.4.7和2.3.2版本,本专栏后续以1.4.7为例进行讲解补充&#xff1a; nacos-server服务端和nacos-client客户端附加&#xff1a; spring 版本、nacos-server、nacos-client版本要适配思考&#xf…

【Redis】Widows 和 Linux 下使用 Redis

Redis 简述 1.缓存 缓存就是将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段,现代 CPU 越来越快的一个重要因素就是使用了更多的缓存,在复杂的软件设计中,缓存几乎无处不在。大型网站架构设计在很多方面都使用了缓存设计。 2.Redis Redis …

同元软控专业模型库系列—电气篇

一、引言 电气作为研究电能产生、传输、分配、使用和控制的专业领域&#xff0c;在航空航天、能源电力、船舶推进、轨道交通等众多行业中占据着举足轻重的地位&#xff0c;应用范围涉及电力工程、电子通信、自动化控制等&#xff0c;如电池充电管理芯片设计、航天器伺服系统、…

GitHub Copilot如何订阅使用

1.Copilot是什么 Copilot是由Github和OpenAI联合开发的一个基于人工智能大模型的代码写作工具。 我们都知道Github是世界上拥有开源项目及代码最多的一个平台&#xff0c;有了这么一个得天独厚的资源&#xff0c;Github联合OpenAI喂出了Copilot。经过不断地更新迭代&#xff…

Word整理论文参考文献

1.安装Zotero软件 2.安装Zotero的Chrome网站插件&#xff0c;并将插件固定到浏览器 3.安装Word的Zotero插件 4.在DBLP网站https://dblp.org/search 搜索需要添加的参考文献->点击BibTex->点击网页右上角的Zotero符号&#xff08;即第二步所指的符号&#xff09;->至…

红队攻防渗透技术实战流程:红队目标上线之webshell工具魔改

红队攻防免杀实战 1. 红队目标上线-Webshell免杀-源码魔改1.2 Webshell-代码混淆&流量绕过&工具原理1.2 通过对冰蝎的数据包分析:1.2魔改冰蝎-JAR反编译打包构建1.2魔改冰蝎-防识别-打乱特征指纹1.2魔改冰蝎-防查杀-新增加密协议1. 红队目标上线-Webshell免杀-源码魔改…

[转载]同一台电脑同时使用GitHub和GitLab

原文地址&#xff1a;https://developer.aliyun.com/article/893801 简介&#xff1a; 工作中我们有时可能会在同一台电脑上使用多个git账号&#xff0c;例如&#xff1a;公司的gitLab账号&#xff0c;个人的gitHub账号。怎样才能在使用gitlab与github时&#xff0c;切换成对应…

民国漫画杂志《时代漫画》第27期.PDF

时代漫画27.PDF: https://url03.ctfile.com/f/1779803-1248635258-b6a842?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

「互联网+招标」背景下,促进投标保证保险发展,天道经纪在行动

过去&#xff0c;企业每参加一个工程建设项目招标&#xff0c;都需要在投标期间缴纳一笔数额不小的投标保证金&#xff0c;少则几万&#xff0c;多则几十万&#xff0c;资金质押时间至少1个月。如果同时参与多个项目的招标&#xff0c;企业需要大额的流动资金保障。对于企业而言…

一键开关机电路

大家好&#xff0c;我是记得诚。 球友问了一个问题&#xff0c;是这样的。 诚哥&#xff0c;请教一个问题。这个一键开关机有没有问题&#xff0c;或者有哪些改进的地方。 1、内部电源供电&#xff0c;可外接适配器。 2、VBAT接锂电池&#xff0c;VBUS接电源适配器。 3、BU…

【运维项目经历|024】MySQL性能优化与监控平台

目录 项目名称 项目背景 项目目标 项目成果 我的角色与职责 我主要完成的工作内容 本次项目涉及的技术 本次项目遇到的问题与解决方法 本次项目中可能被面试官问到的问题 问题1&#xff1a;项目周期多长时间&#xff1f; 问题2&#xff1a;项目服务器部署架构方式及数…

Java毕业设计 基于springboot vue考勤管理系统

Java毕业设计 基于springboot vue考勤管理系统 SpringBoot 考勤管理系统 功能介绍 员工 登录 个人中心 修改密码 个人信息 员工请假管理 员工出差管理 薪资管理 员工签到管理 公告管理 管理员 登录 个人中心 修改密码 个人信息 员工管理 员工请假管理 员工出差管理 薪资管理…

MongodDB实现用户名密码远程登录的配置步骤

1. 引入 根据参考1&#xff0c;在CentOS7上搭建了MongodDB6.0。 搭建后&#xff0c;参考2中的步骤&#xff0c;进行配置&#xff0c;就能使用mongosh命令来连接mongo&#xff0c;也可以实现远程登录。 但是&#xff0c;此时不需要密码&#xff0c;就能连接上MongoDB&#xff0…

ThreadGroup类,你学会了吗?

在 Java 多线程编程中,ThreadGroup 类是一个重要的类,它用于管理线程组,提供了一种组织和管理线程的机制。 通过 ThreadGroup 类,程序员可以方便地对线程进行分组管理,并且可以统一地管理线程组中的异常、优先级等属性。 本文将深入探讨 ThreadGroup 类的作用、用法以及…

openEuler 22.03 LTS SP3源码编译部署OpenStack-Caracal遇到的问题解决

openEuler 22.03 LTS SP3源码编译部署OpenStack-Caracal遇到的问题解决 问题一 给路由设置外部网关后Status为DOWN&#xff08;使用的是OVN&#xff09;问题描述临时的解决办法永久解决办法&#xff08;修改源代码&#xff09; 问题二 分离卷一直显示分离中问题描述解决办法&am…

Host头攻击-使用加密和身份验证机制

使用加密和身份验证机制&#xff0c;即安装合适的安全工具和软件&#xff0c;是确保Web服务器安全性的重要步骤。这种方法涉及使用各种安全工具来检测、预防、监控和响应潜在的安全威胁。以下是对第6种方法的详细讲解&#xff0c;包括一些常见的安全工具和软件的示例。 1. 防火…

spring boot3整合邮件服务实现邮件发送功能

⛰️个人主页: 蒾酒 &#x1f525;系列专栏&#xff1a;《spring boot实战》 目录 内容概要 开通服务 依赖引入 配置属性 创建邮件发送工具类 测试 最近发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家…