Java 多线程异步处理demo
java中实现多线程
1)继承Thread,重写里面的run方法
2)实现runnable接口
通过源码发现:
第一种方法说是继承Tread然后重写run方法,通过查看run方法的源码,发现run方法里面调用是runnable接口中抽象的run()方法。
既然这样不如直接使用第二种方法,使用第二种方法,第一 java没有单继承的限制,第二 还可以隔离代码
言归正传下面是第二种方法的demo
1.处理业务代码
1 //根据传参打印对应的名字 2 private void printName(String name) throws Exception{ 3 System.out.println(name); 4 }
2.创建内部类实现Runnable接口
1 private class PrintName implements Runnable{ 2 private String name; 3 4 public PrintName(String name){ 5 this.name = name; 6 } 7 8 //Runnable接口中的抽象方法 9 @Override 10 public void run(){ 11 try { 12 printName(name); 13 }catch (Exception e){ 14 System.out.println(e); 15 } 16 17 } 18 }
3. 创建线程对象并执行线程
1 private void createThead() throws Exception { 2 String name = "hello world"; 3 Thread thread = new Thread(new PrintName(name)); 4 thread.start(); 5 }
现在附上全部代码:
1 package com.ieou.demo.controller; 2 3 import org.springframework.web.bind.annotation.GetMapping; 4 import org.springframework.web.bind.annotation.RequestMapping; 5 import org.springframework.web.bind.annotation.RestController; 6 7 @RestController 8 @RequestMapping("/") 9 public class Demo1Controller { 10 11 12 /** java 多线程 异步实现demo */ 13 14 //第一步 处理业务代码 15 //根据传参打印对应的名字 16 private void printName(String name) throws Exception{ 17 System.out.println(name); 18 } 19 20 //创建内部类实现Runnable接口 21 private class PrintName implements Runnable{ 22 private String name; 23 24 public PrintName(String name){ 25 this.name = name; 26 } 27 28 //Runnable接口中的抽象方法 29 @Override 30 public void run(){ 31 try { 32 printName(name); 33 }catch (Exception e){ 34 System.out.println(e); 35 } 36 37 } 38 } 39 40 //第三部 创建线程对象 41 private void createThead() throws Exception { 42 String name = "hello world"; 43 Thread thread = new Thread(new PrintName(name)); 44 thread.start(); 45 } 46 47 @GetMapping("/name") 48 public String findName() throws Exception{ 49 System.out.println("name1"); 50 createThead(); 51 System.out.println("name3"); 52 return "1"; 53 }
执行结果:
hello world!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix