java中实现多线程

1)继承Thread,重写里面的run方法

2)实现runnable接口
通过源码发现:
第一种方法说是继承Tread然后重写run方法,通过查看run方法的源码,发现run方法里面调用是runnable接口中抽象的run()方法。
既然这样不如直接使用第二种方法,使用第二种方法,第一 java没有单继承的限制,第二 还可以隔离代码

言归正传下面是第二种方法的demo

1.处理业务代码

 //根据传参打印对应的名字
private void printName(String name) throws Exception{
System.out.println(name);
}

2.创建内部类实现Runnable接口

 private class PrintName implements Runnable{
private String name; public PrintName(String name){
this.name = name;
} //Runnable接口中的抽象方法
@Override
public void run(){
try {
printName(name);
}catch (Exception e){
System.out.println(e);
} }
}

3. 创建线程对象并执行线程

 private void createThead() throws Exception {
String name = "hello world";
Thread thread = new Thread(new PrintName(name));
thread.start();
}

现在附上全部代码:

 package com.ieou.demo.controller;

 import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
@RequestMapping("/")
public class Demo1Controller { /** java 多线程 异步实现demo */ //第一步 处理业务代码
//根据传参打印对应的名字
private void printName(String name) throws Exception{
System.out.println(name);
} //创建内部类实现Runnable接口
private class PrintName implements Runnable{
private String name; public PrintName(String name){
this.name = name;
} //Runnable接口中的抽象方法
@Override
public void run(){
try {
printName(name);
}catch (Exception e){
System.out.println(e);
} }
} //第三部 创建线程对象
private void createThead() throws Exception {
String name = "hello world";
Thread thread = new Thread(new PrintName(name));
thread.start();
} @GetMapping("/name")
public String findName() throws Exception{
System.out.println("name1");
createThead();
System.out.println("name3");
return "1";
}

执行结果:

												

Java 多线程异步处理demo的更多相关文章

  1. java多线程的简单demo

    模拟场景:顾客买车从车库中取车,厂家生产车,车存储在车库中.买家.厂家对同一个车库中的车操作 一.不加同步机制的代码如下: package com.joysuch.testng.thread; imp ...

  2. java多线程并发执行demo,主线程阻塞

    其中有四个知识点我单独罗列了出来,属于多线程编程中需要知道的知识: 知识点1:X,T为泛型,为什么要用泛型,泛型和Object的区别请看:https://www.cnblogs.com/xiaoxio ...

  3. java 多线程断点下载demo

    源码链接 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java ...

  4. Java多线程异步调度程序分析(二)

    源自:http://blog.sina.com.cn/s/blog_4cc16fc50100c0uh.html public abstract class Result {   //抽象的结果类 pu ...

  5. Java 多线程 破解密码 demo

    功能要求: 具体类: Decrypt  测试类,用来启动破解和日志线程 DecryptThread 破解线程类,用来生成测试的字符串,并暴力破解 LogThread 日志类,将输出每次生成的字符串结果 ...

  6. java多线程异步执行

    import java.util.concurrent.Callable; import java.util.concurrent.ExecutionException; import java.ut ...

  7. java多线程(三)-Executors实现的几种线程池以及Callable

    从java5开始,类库中引入了很多新的管理调度线程的API,最常用的就是Executor(执行器)框架.Executor帮助程序员管理Thread对象,简化了并发编程,它其实就是在 提供了一个中间层, ...

  8. java多线程(八)-死锁问题和java多线程总结

    为了防止对共享受限资源的争夺,我们可以通过synchronized等方式来加锁,这个时候该线程就处于阻塞状态,设想这样一种情况,线程A等着线程B完成后才能执行,而线程B又等着线程C,而线程C又等着线程 ...

  9. java多线程(七)-线程之间的 协作

    对于多线程之间的共享受限资源,我们是通过锁(互斥)的方式来进行保护的,从而避免发生受限资源被多个线程同时访问的问题.那么线程之间既然有互斥,那么也会有协作.线程之间的协作也是必不可少的,比如 盖个商场 ...

随机推荐

  1. [原创]Oracle 12c的备份和恢复策略

    Oracle 12c的备份和恢复策略(RMAN备份[开启归档/控制文件/数据文件/归档日志]): 备份策略: * 每半年做一个数据库的全备份(包括所有的数据和只读表空间) * 每周做一次零级备份 * ...

  2. [翻译]编写高性能 .NET 代码 第一章:性能测试与工具 -- 平均值 vs 百分比

    <<返回目录 平均值 vs 百分比 在考虑要性能测试的目标值时,我们需要考虑用什么统计口径.大多数人都会首选平均值,但在大多数情况下,这个正确的,但你也应该适当的考虑百分数.但你有可用性的 ...

  3. dubbo filter实现接口认证springboot idea

    最近公司有业务需求,要对Dubbo接口调用者进行身份验证,验证通过才能调用,网上一些资料不够全面,遂整理了一下. 在provider方定义一个filter,需要实现com.alibaba.dubbo. ...

  4. django-站点管理

    站点管理--超级用户的管理界面,可以让你添加,删除,管理网站内容: 一.激活管理界面 1.在settings.py中进行如下配置: INSTALLED_APPS = ( 'django.contrib ...

  5. Node.js入门(含NVM、NPM、NVM的安装)

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. Node.js的介绍 引擎 引擎的特性: JS的内核即引擎.因为引擎有以 ...

  6. Windows API Finishing

    input { font-size: 14px; height: 26px } td { border-style: none; border-color: inherit; border-width ...

  7. Java架构工程师知识图,你都知道么?

    1.工程化专题 (团队大于3个人之后,你需要去考虑团队合作,科学管理)  2.源码分析专题 (好的程序员,一行代码一个设计就能看出来,源码分析带你品味代码,感受架构)  大家可以点击加入群:69757 ...

  8. AGC010 - A: Addition

    原题链接 题意简述 给出一个个数的数列,每次选出两个奇偶性相同的数合成一个数,问最终能否只剩下一个数. 分析 非常简单的一道题. 两个偶数可以合成一个偶数,两个奇数也能合成一个偶数.所以合并偶数时偶数 ...

  9. webTest-----webUI自动化框架

    webTest框架介绍 地址 https://github.com/wuranxu/webTest 希望大家能够喜欢!!! 简介 本框架基于Python3+selenium3+unittest组成,用 ...

  10. 使用IntelliJ IDEA 和 Maven创建Java Web项目

    1. Maven简介 相对于传统的项目,Maven 下管理和构建的项目真的非常好用和简单,所以这里也强调下,尽量使用此类工具进行项目构建, 它可以管理项目的整个生命周期. 可以通过其命令做所有相关的工 ...