zoukankan      html  css  js  c++  java
  • 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     }

    执行结果:



  • 相关阅读:
    IOI 1996 网络协议
    lougu P2344奶牛抗议
    Poj3764 The XOR-longest Path
    A Simple Problem with Integers (线段树)
    NOIP2011 选择客栈
    20181029 T3 乐谱分段
    20181029 T2 寻宝游戏
    20181029 T1 教科书般的亵渎
    NOIP2011聪明的质监员
    浅谈AC自动机
  • 原文地址:https://www.cnblogs.com/wang-yaz/p/8560054.html
Copyright © 2011-2022 走看看