news 2026/10/2 18:35:52

创建线程的五种写法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
创建线程的五种写法

目录

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

2.实现Runnable接口,并重写run()方法

3.使用匿名内部类,继承Thread类,重写run方法

4.使用匿名内部类,实现Runnable接口,重写run()方法

5.使用lambda表达式


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

//继承Thread类,并重写run方法 class MyThread extends Thread{ public void run(){ while(true){ System.out.println("hello thread"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } } } } public class demo1 { public static void main(String[] args) throws InterruptedException { Thread t=new MyThread(); t.start(); //main线程执行的任务 while(true){ System.out.println("hello main"); Thread.sleep(1000); } } }

2.实现Runnable接口,并重写run()方法

//实现Runnable接口,并重写run()方法 class MyRunnable implements Runnable{ @Override public void run() { while(true){ System.out.println("hello thread"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } } } } public class demo2 { public static void main(String[] args) { Runnable runnable=new MyRunnable(); Thread t=new Thread(runnable); t.start(); } }

3.使用匿名内部类,继承Thread类,重写run方法

//使用匿名内部类,继承Thread类,重写run方法 public class demo3 { public static void main(String[] args) { Thread t=new Thread(){ public void run(){ while(true){ System.out.println("hello thread"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } } } }; t.start(); } }

4.使用匿名内部类,实现Runnable接口,重写run()方法

//使用匿名内部类,实现Runnable接口,重写run()方法 public class demo4 { public static void main(String[] args) { Runnable runnable=new Runnable() { @Override public void run() { while(true){ System.out.println("hello thread"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } } } }; Thread t=new Thread(runnable); t.start(); } }

5.使用lambda表达式

//使用lambda表达式 public class demo5 { public static void main(String[] args) { Thread t=new Thread(()->{ while(true){ System.out.println("hello thread"); try { Thread.sleep(1000); } catch (InterruptedException e) { throw new RuntimeException(e); } } }); t.start(); } }

使用lambda表示式,本质上是使用“匿名函数”,其最主要的用途是用作回调函数。

在java中,方法必须要依托于类来存在,以上的函数式接口()->{},在编译器背后实际上做的工作是,创建一个匿名函数式接口的子类,并且创建出对应的实例,并重写了里面的方法。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/3 10:25:25

值得关注的人形机器人公司盘点,智元AGIBOT以卓越实力登顶

随着AI大模型与柔性驱动技术的深度融合,人形机器人正逐渐走向规模商业化,在服务、工业、文娱等场景实现阵阵落地。当前行业呈现“技术智能化、场景多元化、生态一体化”三大趋势,一批具备核心技术与落地能力的企业脱颖而出,以下5 …

作者头像 李华
网站建设 2026/10/2 0:25:06

PLC连续可变S速度曲线算法仿真

一、前言1.连续可变S速度曲线:系统运行中可更改输入的运行速度,此速度曲线会重新规划,根据当前速度,加速度、减速度、重新规划速度。由S型斜坡柔性改变到新的速度2.S速度曲线使用三角函数曲线算法,其加速度、加加速度皆…

作者头像 李华
网站建设 2026/10/3 5:50:45

清华源替换Anaconda默认源,Miniconda下载速度飞跃

清华源替换Anaconda默认源,Miniconda下载速度飞跃 在人工智能项目开发中,你是否经历过这样的场景:运行一条 conda install pytorch 命令后,看着终端里缓慢爬升的进度条——几KB/s的速度,动辄半小时起的等待时间&#x…

作者头像 李华
网站建设 2026/10/2 4:40:39

AutoGPT技术揭秘:大语言模型如何成为自主任务驱动智能体?

AutoGPT技术揭秘:大语言模型如何成为自主任务驱动智能体? 在当今AI快速演进的浪潮中,一个根本性转变正在悄然发生——我们不再只是向机器提问“怎么做”,而是直接告诉它“我要什么”。这种从指令驱动到目标驱动的跃迁,…

作者头像 李华
网站建设 2026/10/2 22:03:59

18、Docker生态系统工具全解析

Docker生态系统工具全解析 在当今的软件开发和部署中,Docker 已经成为了一个不可或缺的工具。它提供了容器化技术,使得应用的部署和管理变得更加高效和便捷。而围绕 Docker 也诞生了一系列的生态系统工具,这些工具可以帮助我们更好地使用 Docker,提高开发和部署的效率。本…

作者头像 李华
网站建设 2026/10/2 23:25:21

25、容器监控与应用实践全解析

容器监控与应用实践全解析 1. 容器监控工具介绍 1.1 使用 Collectd 可视化容器指标 Collectd 可用于获取所有运行容器的统计信息。对于名为 cpu_stats 的统计信息,它会将 PUTVAL 字符串写入标准输出,该字符串可被 Collectd 理解并发送到 Graphite 数据存储(即 Carbon…

作者头像 李华