news 2026/8/24 15:59:53

创建线程的五种写法

作者头像

张小明

前端开发工程师

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/8/24 14:06:36

四步优化APP描述,打造高转化率的“无声销售员”

应用商店里的APP描述,是用户了解你产品的第一扇窗。在短短几十秒的浏览时间里,这份描述决定了用户是否会点击“下载”。一个优秀的产品描述不仅是功能说明书,更是产品的“无声销售员”。如何才能写出既专业又具吸引力的应用描述?以…

作者头像 李华
网站建设 2026/8/24 1:45:36

姿轨控动力学仿真程序轨道部分的基本测试方法

轨道动力学程序基本测试方法 1. 引言 轨道动力学程序的正确性是计算轨道特性和验证姿轨控程序的必要条件,而轨道动力学程序也需要严格可信的验证和测试。 在轨道与位置动力学仿真中,“程序能跑”不等于“动力学是对的”。 由于数值积分、坐标系、符号方向…

作者头像 李华
网站建设 2026/8/24 8:18:44

vLLM为何能将大模型吞吐提升10倍?技术细节曝光

vLLM为何能将大模型吞吐提升10倍?技术细节曝光 在当前大语言模型(LLMs)加速落地的浪潮中,推理效率正成为决定产品成败的关键。当企业试图部署像 LLaMA、Qwen 或 ChatGLM 这类百亿参数级模型时,常常面临一个尴尬局面&am…

作者头像 李华
网站建设 2026/8/24 1:45:37

为什么说Miniconda是机器学习实验环境的理想选择?

为什么说Miniconda是机器学习实验环境的理想选择? 在当今的AI研发实践中,一个令人头疼的问题反复上演:某个模型在开发者的本地机器上运行完美,但换到同事或服务器上却报错不断——“ImportError”、“CUDA version mismatch”、“…

作者头像 李华
网站建设 2026/8/24 7:31:09

国家经开区动态数据库与评价体系全新上线!

一、研发背景 国家级经济技术开发区(以下简称“国家经开区”)是中国为深化改革开放、吸引外资、促进产业升级而设立的特殊经济区域,承载着对外开放窗口、产业集聚平台和制度创新试验田的重要使命。自设立以来,国家级经开区在推动…

作者头像 李华
网站建设 2026/8/24 14:08:21

Condaerror解决方案大全:以Miniconda为核心重建环境

CondaError 解决之道:以 Miniconda 重构 AI 开发环境 在机器学习项目中,你是否曾遇到这样的场景?刚从同事那里拉来一个实验代码库,满怀期待地运行 pip install -r requirements.txt,结果却卡在某个 C 扩展的编译上&…

作者头像 李华