当前位置: 首页 > news >正文

创建线程的五种写法

目录

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

http://www.cnnetsun.cn/news/65500.html

相关文章:

  • 值得关注的人形机器人公司盘点,智元AGIBOT以卓越实力登顶
  • PLC连续可变S速度曲线算法仿真
  • 清华源替换Anaconda默认源,Miniconda下载速度飞跃
  • AutoGPT技术揭秘:大语言模型如何成为自主任务驱动智能体?
  • 18、Docker生态系统工具全解析
  • 25、容器监控与应用实践全解析
  • AutoGPT如何识别任务优先级?重要紧急四象限法应用
  • 收藏这篇就够了!RAG技术详解:让大模型告别幻觉的终极方案
  • 25、深入理解 Java 中的严格性与惰性
  • 26、深入理解惰性流:操作与应用
  • 如何在服务器上运行LobeChat镜像并对接GPU加速推理?
  • 【编号2551】从代码逻辑到实用体验:一款小红书笔记下载工具的技术实现与使用感悟
  • 大模型智能体开发指南:文件系统如何优化Agent性能!
  • ComfyUI集成Qwen3-14B的可能性探索:视觉+语言新组合
  • GPT-5.2震撼上线!性能碾压人类专家,程序员必学大模型技术,建议收藏
  • CompTIA CV0-004 Cloud+ 認證考試完整介紹
  • PyTorch安装避坑指南 + vLLM性能调优技巧
  • AutoGPT与Metabase Plus集成:增强版报表自动化
  • PyTorch安装后如何加载Qwen3-VL-8B进行多模态推理
  • 【收藏必看】2025大模型技术岗位全景图:15大方向详解,助你成为AI人才
  • LobeChat支持GraphQL接口吗?API扩展能力分析
  • LobeChat能否实现对话分享功能?链接公开化实践
  • 全球工程软件格局重塑:中国AI原生平台的机会窗口
  • 【Dubbo】接口特性与开发注意事项
  • 测试环境管理的最佳实践
  • Miniconda环境下安装PyTorch GPU版的完整流程
  • AI推理的“哥白尼革命”!何恺明团队推翻LLM,将抽象推理重新定义为视觉问题
  • 深度学习训练器框架全面对比指南
  • 火山引擎AI大模型新玩法:结合vLLM实现高效推理
  • 16、GTK+ 样式定制全解析