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     }

执行结果:

 



转载于:https://www.cnblogs.com/wang-yaz/p/8560054.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值