zoukankan      html  css  js  c++  java
  • CountDownLatch

    简述:现等待所有子线程结束后再执行一段代码

    package com.example.demo.Thread;

    import lombok.SneakyThrows;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.context.request.RequestContextHolder;
    import org.springframework.web.context.request.ServletRequestAttributes;

    import javax.servlet.http.HttpServletRequest;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.concurrent.CountDownLatch;
    @RestController
    @RequestMapping
    public class ThreadDemo {

    static CountDownLatch cdl;//这里的数字,开启几个线程就写几


    /**
    * 实现等待所有子线程结束后再执行一段代码
    * @throws InterruptedException
    */
    @RequestMapping("threadDemo/test")
    public static void counter() throws InterruptedException {
    // 将RequestAttributes对象设置为子线程共享
    ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    RequestContextHolder.setRequestAttributes(sra, true);

    String token = getCurrentRequestInfo().getHeader("token");
    System.out.println(token);
    cdl = new CountDownLatch(1);
    new Thread(new Runnable(){
    @SneakyThrows
    public void run() {
    Thread.sleep(1000); //1000 毫秒,也就是bai1秒.
    String token1 = getCurrentRequestInfo().getHeader("token");
    System.out.println(token1);
    // TODO Auto-generated method stub
    cdl.countDown();
    }
    }).start();
    cdl.await();//主线程等待子线程执行输出
    }

    public static HttpServletRequest getCurrentRequestInfo() {
    ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    return servletRequestAttributes.getRequest();
    }
    }

      

  • 相关阅读:
    vue 自定义组件销毁
    通过微信公众号API复制公众号自定义菜单同时增加子菜单方法
    shell 常用案例
    java 与 CDH kafka集成
    CDH 安装 kafka
    linux下Vim文本编辑器的常用快捷键
    shell 启动和停止脚本
    CHD 5.15 安装 Kylin
    hive on spark
    kafka-mirror不稳定问题分析与解决方法
  • 原文地址:https://www.cnblogs.com/wangdahui/p/13554305.html
Copyright © 2011-2022 走看看