news 2026/3/4 11:10:41

创建线程的五种写法

作者头像

张小明

前端开发工程师

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/2/27 10:41:34

从零开始配置Qwen3-8B:docker安装+pytorch依赖配置一站式指南

从零开始配置Qwen3-8B:Docker安装PyTorch依赖配置一站式指南 在消费级显卡上跑通一个80亿参数的大模型,听起来像天方夜谭?其实不然。随着硬件性能的提升和框架优化的深入,如今在单张RTX 3090或4090上部署像 Qwen3-8B 这样的中等规…

作者头像 李华
网站建设 2026/3/3 10:47:37

19、Docker生态系统工具的使用与管理

Docker生态系统工具的使用与管理 1. Ansible与Vagrant部署WordPress和MySQL容器 在使用Ansible和Vagrant进行容器部署时,我们可以方便地启动WordPress和MySQL容器。以下是具体的步骤和相关配置: - Ansible Playbook示例 : - hosts: wordpresstasks:- name: Docker pu…

作者头像 李华
网站建设 2026/2/27 17:03:50

Anaconda配置PyTorch环境后,如何接入vLLM提升性能?

Anaconda配置PyTorch环境后,如何接入vLLM提升性能? 在大模型应用日益普及的今天,很多开发者都曾遇到这样的问题:明明GPU算力充足,推理服务却在高并发下“卡顿”严重;显存占用居高不下,但利用率却…

作者头像 李华
网站建设 2026/3/2 22:23:57

23、Docker在云端的应用与容器监控

Docker在云端的应用与容器监控 1. AWS ECS任务注册与运行 在AWS ECS中注册任务的方式与之前使用Nginx时类似,但需要指定一个新的任务族。不过,当任务运行时,可能会因为约束条件不满足而失败。 1.1 任务运行失败示例 假设容器实例类型为t2.micro,内存为1GB。而任务定义要…

作者头像 李华
网站建设 2026/3/1 2:18:38

利用Miniconda快速测试不同版本TensorFlow性能差异

利用Miniconda快速测试不同版本TensorFlow性能差异 在深度学习项目中,你是否曾遇到这样的场景:一篇论文声称其模型在 TensorFlow 2.4 上取得了突破性进展,但你在最新版 TensorFlow 2.13 中复现时却始终无法收敛?或者团队中的旧模型…

作者头像 李华
网站建设 2026/3/3 23:01:04

24、Docker 容器日志监控与管理全攻略

Docker 容器日志监控与管理全攻略 1. 容器日志查看与进程监控 在 Docker 中,我们可以使用 docker logs -f 命令来查看容器的日志。例如: $ docker logs -f gloomy_mclean 192.168.34.1 - - [10/Mar/2015:10:12:35 +0000] "GET / HTTP/1.1" 200 612 "-&q…

作者头像 李华